PHP SQL 行正确的格式


PHP SQL ROW Proper Format

打印行列表的正确方法是什么?

<?php
    $list = '';
    $sql = mysql_query("SELECT name FROM users");
    while($row = mysql_fetch_array($sql)){
        $name = $row["name"]; // row in set var
        $list.= '<li>'.$name.'</li>'; // set variable in list var
    }
?>
<html>
    <ul><?php print $list ?></ul>
</html>

或者这个。

<?php
    $list = '';
    $sql = mysql_query("SELECT name FROM users");
    while($row = mysql_fetch_array($sql)){
        $list.= '<li>'.$row["name"].'</li>'; // row in list var
    }
?>
<html>
    <ul><?php print $list ?></ul>
</html>

我知道这似乎是一个愚蠢的问题,但对我来说并非如此。 我用过这两种方法,我很好奇。

  • 有没有首选方法?
  • 快一种方式(甚至几分之一毫秒)
  • 哪一个更正式

PS:我通常使用PDO,所以请不要在mysql上打包,我只是为了举例而输入这个。

提前感谢您的反馈。

试试这个,而不是存储和打印,你可以直接在你的HTML中打印。

<ul>
    <?php
    $list = '';
    $sql = mysql_query("SELECT name FROM users");
    while($row = mysql_fetch_array($sql)){
        echo '<li>'.$row["name"].'</li>'; // row in list var
    }
?>
</ul>

在我看来,更快的方法是避免使用冗余变量和不必要的方法。请注意,您正在while中连接字符串,因此您要为表的每一行创建一个连接。

在我看来,最好的方法是这样。

PHP部分:

    $results = array();//This is only to be sure that the array is empty
    $sql = mysql_query("SELECT name FROM users");
    while($row = mysql_fetch_array($sql)){
         $results[] = $row['name'];
    }
?>

网页部分:

<ul>
    <?php foreach($results as $result){ ?>
         <li><?php echo $result; ?></li>
    <? } ?>
</ul>

通过这样做,您可以避免这些连接,并且还可以使HTML远离PHP代码。也许这不是最快的选择,但我认为它足够快,正式和干净。

此外,在PHP代码中维护HTML代码是一种痛苦,所以我真诚地建议您避免这种情况,即使在这个例子中也是如此。