【问题标题】:How to write this loop prettier?如何写这个循环更漂亮?
【发布时间】:2010-05-29 22:24:40
【问题描述】:

我刚刚阅读了这个主题highlight search keywords on hover,实际上我使用了几乎相同的结构,但它看起来很糟糕。那么你能给我一个建议,如何在一个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 } ?>

【问题讨论】:

  • 如果您的应用程序更多,请尝试使用 php 框架!允许您将 html 与 php 分开的东西

标签: php mysql html


【解决方案1】:

就我个人而言,我会保留 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>

如果您的服务器设置允许,您可以使用短标签回显变量:&lt;?=$row['cquote_hi']?&gt;

我不知道 h() 函数在做什么,但您也许可以为原始 while 循环中的每个变量调用它,然后直接回显变量。

【讨论】:

  • 我对将数据库内容与输出分开的概念更满意。我们的 Web 应用程序不这样做,现在当我们想要重构它时,这是一场血腥的噩梦。但是,不要使用 short_tags。曾经。您可能会节省一点打字时间,但使用长版本的清晰度要好得多(无论您的服务器配置如何,都可以使用)。
  • 斯蒂芬:短标签 FTW。每种模板语言都使用它们的某种形式是有原因的。
【解决方案2】:

这就是我的方式:

<?

echo '<table class="result">';

while ($row= mysql_fetch_array($result, MYSQL_ASSOC)) {

    $cQuote =  highlightWords(htmlspecialchars($row['cQuotes']), $search_result);

    echo '
    <tr>
        <td style="text-align:right; font-size:15px;">'.h($row["cArabic"]).'</td>
        <td style="font-size:16px;">'.$cQuote.'</td>
        <td style="font-size:12px;">'.h($row["vAuthor"]).'</td>
        <td style="font-size:12px; font-style:italic; text-align:right;">'.h($row["vReference"]).'</td>
    </tr>';
}

echo '</table>';

?>

所有 php...

【讨论】:

    猜你喜欢
    • 2021-11-01
    • 2020-11-21
    • 2021-06-02
    • 2011-06-03
    • 2020-02-13
    • 2018-06-20
    • 1970-01-01
    • 2023-03-23
    • 2020-07-31
    相关资源
    最近更新 更多