我在网上看了一会儿找到一种用MYSQL表中的数据填充HTML表的方法。
从我所看到的,我已经创建了这个,但是它只返回表中的第一个条目,而不仅仅是一次,而是继续永久地添加它。
<?php
require "connect.php";
$conn = Connect();
$query = mysql_query("SELECT handle, email, campaigngroup FROM targets");
?>
<table>
<tr>
<td>Handle</td>
<td>Email</td>
<td>Group</td>
</tr>
<?php
while($row = mysql_fetch_row($query)) {?>
<tr>
<td><?php echo $row['handle'];?></td>
<td><?php echo $row['email'];?></td>
<td><?php echo $row['campaigngroup'];?></td>
</tr>
<?php } ?>
</table>
什么是我希望实现的最佳方式?我希望HTML表与SQL表中的数据量一样长。
答案 0 :(得分:0)
正如我在评论中提到的那样:
它很可能是数组的语法。请参阅http://php.net/manual/en/function.mysql-fetch-row.php上的手册,您可以使用其他功能,并且使用了错误的功能。它试图移动到下一个指针而从未找到它,这就是它永远循环的原因。 @IsaacManzi您希望我将此评论作为答案吗? ;-)来自手册:&#34;返回与获取的行对应的数字数组,并将内部数据指针向前移动。 &#34;
和
如果您想要使用
$row['string']
,则必须使用mysql_fetch_array()
或mysql_fetch_assoc()
。您正在使用数字数组与mysql_fetch_row()
一起使用的字符串。
然而,这个api已经过时了,不应该在这个时代使用。
使用mysqli_
或PDO api,如果涉及用户输入,则需要使用预准备语句。否则,您将接触到SQL注入。
你声明你在评论中使用mysqli_
api尝试了它,你可能正在使用mysqli_
等价物,反过来给你相同的结果/永远循环。
您还可以考虑使用分页,分页也使用LIMIT来限制记录。