一些基本的PHP问题

时间:2008-12-01 12:39:02

标签: php

我刚刚学习了一些基本的php问题以进一步理解,我找不到简单的答案

  1. 我有一个php ajax应用程序,它生成一个mysql行表。我想知道是否有办法让PHP生成整洁的html,因为它似乎很整齐,因为我回应它,​​但当“查看源”html是一个巨大的混乱块没有换行或任何东西。这样做有诀窍吗?

  2. 限制mysql数据库的表输出的最佳方法是什么,因此只显示前10条记录左右,并且在记录之间自动生成下一条和上一条链接?

    < / LI>
  3. 从mysql数据库用php输出信息时,处理布尔值的最佳方法是什么?显示“是”或“否”或刻度线或十字架的最简单方法是什么?编辑:我不是说我应该使用文字或图片,而是如何显示以回应布尔值

6 个答案:

答案 0 :(得分:3)

问题1

您需要分离PHP代码和HTML输出。作为一个新手,最简单的事情是:

  • 使用您的条目填充名为$ tab的var。

  • 创建一个名为“my_tab_template.php”的文件,其中包含您的xHTML代码,使用很少的PHP来解压缩$ tab,只使用 PHP替代语法

    < / LI>

<table>
   <?php foreach ($tab as $line) : ?>
      <tr>
         <?php foreach ($line as $cell) : ?>
           <td><?php echo $cell ?></td>
         <?php endforeach; ?>
      </tr>
    <?PHP endforeach; ?>
</table>


  • 填写$ tab后立即加入my_tab_template.php

不要担心优化和性能,当你开始编码时,这肯定不会是你的网站瓶颈,你会让事情变得更加麻烦; - )

然后,在你的下一个项目中,当你感觉很好的时候,尝试了解MVC模式(对SO的一点点搜索可能会有所帮助)。不要听人们谈论模板系统,否则。通过驾驶执照前,请勿尝试开始运行150毫升。

问题2

这不是PHP问题。您要做的是限制数据库的输出。您可以使用“LIMIT”SQL关键字来执行此操作。

您可以使用:

  • LIMIT 10:这会将您的查询限制在第10行(= LIMIT 0,10)

  • LIMIT X,Y:这会将您的查询限制为Y行,从第X行开始

在使用LIMIT之前,请记住使用“ORDER BY”对查询结果进行排序,以避免令人讨厌的意外。

PHP中没有自动分页。有一些PHP库为你做脏工作,但在你使用它们之前,我建议先破解你自己的解决方案,以了解机制。它只是关于检查变量和使用“LIMIT”,真的。

然后你可以看看PEAR在哪里有一个标准的方法。但是不要试图找到它,你最好先自己编码。

问题3

如果你的数据库存储一个布尔值,那么它将输出“0”表示false,其他任何东西(最可能是“1”)表示true。试试吧:

if ($my_bool) 
    echo "True";
else
   echo "False";

在PHP中,有一条快捷方式可以说,但您没有义务使用它。无论如何,知道它存在是很好的。遇到布尔运算符:

echo  $my_bool ? "True"  : "False" ;

答案 1 :(得分:1)

  1. 如果您希望以漂亮的格式查看HTML输出,我建议您使用Firebug。它将您的所有HTML放入可折叠的树格式中,甚至只需单击某个项目即可显示它在源中的位置。
  2. 没有简单易用的方法来生成搜索结果的原始分页(仅显示10个结果,然后显示返回/下一页按钮)。我确信某些框架可以帮助你解决这个问题,但最简单的方法是在SQL中使用LIMIT关键字。例如:你想看第3页? SELECT * FROM mytable LIMIT 20,10
  3. 显示布尔值的最简单方法如下:var_dump($myBool)将显示bool(true)
    或者你可以这样做:echo $myBool ? "True" : "False"; - 用你认为最容易阅读的东西替换“真”和“假”。
    如果屏幕不动产是一个问题,显示bool的可接受方式是1或0 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)

  1. 您可以使用PHP Tidy Addon。请记住,使用它过滤HTML会使用相当多的服务器CPU。或者你必须自己打印换行符(echo“\ n”;) 不过我建议你保持原样。如果你不能很好地格式化HTML,只要考虑阅读源代码会有多少人受益,以及有多少人会从较小的文件大小中受益。

  2. 您必须手动执行此操作。网上有一些帮助库。只需Google it

  3. 由您决定并取决于应用程序。牢记用户需求。

答案 4 :(得分:0)

  1. 存在一个名为Smarty的非常好的PHP HTML模板引擎。

  2. select * from table limit 10, 10;将显示10到20之间的结果

  3. 从UI的角度来看,这真的是你的决定,我个人会用真或假

答案 5 :(得分:0)

刚刚触及第一点,因为看起来其他两个已经得到了很好的回答:

如果它在HTML中已经看起来没问题,你只是担心在查看源代码时会发生混乱,只需在打印时将“\ n”添加到每行的末尾。