如何写这个循环更漂亮?

goo*_*ing 5 html php mysql

我刚刚读过这个主题突出显示搜索关键字悬停,实际上我使用相同的结构,但它看起来很糟糕.所以你能给我一个建议,如何在一个php文件中编写这个循环更漂亮,我的意思是php和html同时?

<table class="result">
    <?php while ($row= mysql_fetch_array($result, MYSQL_ASSOC)) {
    $cQuote =  highlightWords(htmlspecialchars($row['cQuotes']), $search_result);
    ?>
    <tr>
    <td style="text-align:right; font-size:15px;"><?php h($row['cArabic']); ?></td>
    <td style="font-size:16px;"><?php echo $cQuote; ?></td>
    <td style="font-size:12px;"><?php h($row['vAuthor']); ?></td>
    <td style="font-size:12px; font-style:italic; text-align:right;"><?php h($row['vReference']); ?></td>
    </tr>
<?php } ?>
Run Code Online (Sandbox Code Playgroud)

Dis*_*oat 7

就个人而言,我会保留HTML部分仅用于打印值,而不是执行数据库连接,调用函数等.像这样的东西:

<?php
$rows = array();
while ($row= mysql_fetch_array($result, MYSQL_ASSOC))
{
    $row['cquote_hi'] = highlightWords(htmlspecialchars($row['cQuotes']), $search_result);
    $rows[] = $row;
}
?>

<table class="result">
    <?php foreach ( $rows as $row ) : ?>
    <tr>
    <td style="text-align:right; font-size:15px;"><?php h($row['cArabic']); ?></td>
    <td style="font-size:16px;"><?php echo $row['cquote_hi']; ?></td>
    <td style="font-size:12px;"><?php h($row['vAuthor']); ?></td>
    <td style="font-size:12px; font-style:italic; text-align:right;"><?php h($row['vReference']); ?></td>
    </tr>
    <?php endforeach; ?>
</table>
Run Code Online (Sandbox Code Playgroud)

如果您的服务器设置允许,您可以使用短标记回显变量: <?=$row['cquote_hi']?>

我不知道h()函数在做什么,但你可以为原始while循环中的每个变量调用它,然后只是回显变量.

  • 我对将数据库内容与输出分开的概念感到高兴.我们的网络应用程序没有这样做,现在当我们想要重构它时,这是一场血腥的噩梦.但是,不要使用short_tags.EVER.您可以节省一点点打字,但使用长版本的清晰度要好得多(无论您的服务器配置是什么,都可以正常工作). (2认同)
  • 斯蒂芬:简称FTW.每种模板语言都使用某种形式的原因是有原因的. (2认同)