我刚刚学习了一些基本的php问题以进一步理解,我找不到简单的答案
我有一个php ajax应用程序,它生成一个mysql行表。我想知道是否有办法让PHP生成整洁的html,因为它似乎很整齐,因为我回应它,但当“查看源”html是一个巨大的混乱块没有换行或任何东西。这样做有诀窍吗?
限制mysql数据库的表输出的最佳方法是什么,因此只显示前10条记录左右,并且在记录之间自动生成下一条和上一条链接?
< / LI>从mysql数据库用php输出信息时,处理布尔值的最佳方法是什么?显示“是”或“否”或刻度线或十字架的最简单方法是什么?编辑:我不是说我应该使用文字或图片,而是如何显示以回应布尔值
答案 0 :(得分:3)
您需要分离PHP代码和HTML输出。作为一个新手,最简单的事情是:
使用您的条目填充名为$ tab的var。
创建一个名为“my_tab_template.php
”的文件,其中包含您的xHTML代码,使用很少的PHP来解压缩$ tab,只使用 PHP替代语法。
<table> <?php foreach ($tab as $line) : ?> <tr> <?php foreach ($line as $cell) : ?> <td><?php echo $cell ?></td> <?php endforeach; ?> </tr> <?PHP endforeach; ?> </table>
my_tab_template.php
。不要担心优化和性能,当你开始编码时,这肯定不会是你的网站瓶颈,你会让事情变得更加麻烦; - )
然后,在你的下一个项目中,当你感觉很好的时候,尝试了解MVC模式(对SO的一点点搜索可能会有所帮助)。不要听人们谈论模板系统,否则。通过驾驶执照前,请勿尝试开始运行150毫升。
这不是PHP问题。您要做的是限制数据库的输出。您可以使用“LIMIT”SQL关键字来执行此操作。
您可以使用:
LIMIT 10:这会将您的查询限制在第10行(= LIMIT 0,10)
LIMIT X,Y:这会将您的查询限制为Y行,从第X行开始
在使用LIMIT之前,请记住使用“ORDER BY”对查询结果进行排序,以避免令人讨厌的意外。
PHP中没有自动分页。有一些PHP库为你做脏工作,但在你使用它们之前,我建议先破解你自己的解决方案,以了解机制。它只是关于检查变量和使用“LIMIT”,真的。
然后你可以看看PEAR在哪里有一个标准的方法。但是不要试图找到它,你最好先自己编码。
如果你的数据库存储一个布尔值,那么它将输出“0”表示false,其他任何东西(最可能是“1”)表示true。试试吧:
if ($my_bool)
echo "True";
else
echo "False";
在PHP中,有一条快捷方式可以说,但您没有义务使用它。无论如何,知道它存在是很好的。遇到布尔运算符:
echo $my_bool ? "True" : "False" ;
答案 1 :(得分:1)
SELECT * FROM mytable LIMIT 20,10
var_dump($myBool)
将显示bool(true)
。echo $myBool ? "True" : "False";
- 用你认为最容易阅读的东西替换“真”和“假”。echo $myBool ? 1 : 0;
,或者甚至更短:echo (int)$myBool;
答案 2 :(得分:1)
用变量
替换var$amir
<table>
<?php foreach ($amir as $yasir) : ?>
<tr>
<?php foreach ($yasir as $shah) : ?>
<td>
<?php echo $shah?>
</td>
<?php endforeach; ?>
</tr>
<?PHP endforeach; ?>
</table>
答案 3 :(得分:0)
您可以使用PHP Tidy Addon。请记住,使用它过滤HTML会使用相当多的服务器CPU。或者你必须自己打印换行符(echo“\ n”;) 不过我建议你保持原样。如果你不能很好地格式化HTML,只要考虑阅读源代码会有多少人受益,以及有多少人会从较小的文件大小中受益。
您必须手动执行此操作。网上有一些帮助库。只需Google it。
由您决定并取决于应用程序。牢记用户需求。
答案 4 :(得分:0)
存在一个名为Smarty的非常好的PHP HTML模板引擎。
select * from table limit 10, 10;
将显示10到20之间的结果
从UI的角度来看,这真的是你的决定,我个人会用真或假
答案 5 :(得分:0)
刚刚触及第一点,因为看起来其他两个已经得到了很好的回答:
如果它在HTML中已经看起来没问题,你只是担心在查看源代码时会发生混乱,只需在打印时将“\ n”添加到每行的末尾。