如何在foreach循环中创建HTML表格

3
我需要在我的循环中创建一个包含三列的HTML表格:电子邮件、名字和姓氏。
有谁能给我一些提示,我该如何开始创建呢?
$i=0;
foreach($result as $r) {
  echo "<pre>";
  print_r( $i ." ". $r['aluno_email'] ."". " | ". $r['aluno_nome']
. " " .
$r['aluno_sobrenome'] . " | ". strtolower(trim(($r['aluno_nome'])))."_".strtolower(trim($r['aluno_sobrenome'])));
   echo "<pre>";
    $i++;
}
5个回答

7
在循环之外创建表格和表头。
在循环中填充表格主体,然后关闭循环。
<table>
    <tr>
        <th>Email</th>
        <th>Name</th>
        <th>Last Name</th>
    </tr>
    <?php
    $i = 0;
    foreach ($result as $r) {
        echo "<tr>";
        echo "<td>" . $r['aluno_sobrenome'] . "</td><td>" . strtolower(trim(($r['aluno_nome']))) . "</td><td>" . strtolower(trim($r['aluno_sobrenome'])) . "</td>";
        echo "</tr>";

        $i++;
    }
    ?>
</table>

3
循环遍历结果,每个结果输出一行。
echo '<table>';
foreach ($results as $r) {
   echo sprintf('<tr><td>%s</td><td>%s</td><td>%s</td></tr>', $r['email'], $r['name'], $r['last_name']);
}
echo '</table>';

“echo sprintf()” 看起来有点过多,只用 “printf()” 就可以了。但还是加个赞,因为使用了这样的函数。 - kero

1

试试这个:

<?php 
$i = 0;
echo '<table>';
foreach ($result as $r) {
    echo "<tr><td>{$i}</td><td>{$r['aluno_email'}</td><td>{$r['aluno_nome']}</td></tr>";
    $i++;
}
echo '</table>';

3
为什么应该让发帖人“尝试这个”?一个好的回答应该总是解释清楚做了什么以及为什么要以那种方式做,不仅为了发帖人,也为了未来访问Stack Overflow的用户。 - Jay Blanchard
1
是的,我做到了。仅仅给出代码的回答通常被认为是不好的形式,我建议你可以让你的回答更好,以至于人们会真正地点赞你的回答。是否改进它是你的选择。节日快乐!¯\(ツ) - Jay Blanchard
1
是的。如果一个完全的新手读了你的回答呢?事情可能并不像你想象的那样显而易见。 - Jay Blanchard
1
这是一个面向各类程序员的网站,无论是新手还是经验丰富的老手都可以在此受益。不过,我只是提出了一个建议,是否采纳由你决定。 - Jay Blanchard
1
请举例说明。编辑我的答案,我想看看它如何更好地回答所提出的问题。 - Ian
显示剩余2条评论

1

我通常首先检查结果,然后构建表格:

if ($result->num_rows > 0) {
     echo "<table>
           <tr>
               <th>Email</th>
               <th>Name</th>
               <th>LastName</th>
           </tr>";

I run my loop and output as long as I have results:

// output data of each row
     while($row = $result->fetch_assoc()) {
         echo "<tr>
                   <td>" . $row["Email"]. "</td>
                   <td>" . $row["Name"]. "</td>
                   <td>" . $row["LastName"]. "</td>
               </tr>";

     }
     echo "</table>";

0

这就是你该怎么做

 echo "<table>
            <tr><th>Email</th><th>Name</th><th>LastName</th></tr>";

            foreach($result as $val){
                echo "<tr><td>".$val['email']."</td><td>".$val['name']."</td><td>".$val['lastName']."</td><td>"</tr>";
            }
echo "</table>";

为什么应该让楼主尝试这个?一个好的答案总是会解释做了什么以及为什么要这样做,不仅为了楼主,也为了未来访问Stack Overflow的用户。 - Jay Blanchard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接