【问题标题】:fill html table with mysql data用mysql数据填充html表
【发布时间】:2018-04-13 00:21:59
【问题描述】:

我在网上浏览了一段时间,想找到一种方法来用 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 表中的数据量一样长。

【问题讨论】:

  • “但会一直添加它” - 你到底是什么意思?有多少条记录?
  • 不要使用mysql_* 函数。它们自 v5.5(2013 年 6 月)起已被弃用,自 v7.0(2015 年 12 月)起已被删除。而是将mysqli_*PDO 函数与prepared statementsbound parameters 一起使用。
  • @Fred-ii- 它是一个 while 循环,所以它会永远持续下去,它会一直持续到我停止页面运行
  • 分页可能吗?
  • 我的评论是一个两部分的问题:这个:“有多少条记录?” 也是我需要知道的。百万? 10? 100,000?万亿?编辑:2???

标签: php html mysql html-table


【解决方案1】:

正如我在 cmets 中提到的:

这很可能是您的数组语法。请参阅http://php.net/manual/en/function.mysql-fetch-row.php 的手册,您可以使用其他功能,但您使用的是错误的功能。它试图移动到下一个指针并且永远找不到它,这就是它永远循环的原因。 @IsaacManzi 你想让我把这个评论作为答案吗? ;-) 来自手册:“返回与获取的行相对应的数值数组,并将内部数据指针向前移动。”

如果您要使用$row['string'],则必须使用mysql_fetch_array()mysql_fetch_assoc()。您正在使用与 mysql_fetch_row() 一起使用数字数组的字符串。

但是,这个 api 已经过时了,在这个时代不应该再使用了。

使用mysqli_ 或 PDO api,如果涉及用户输入,则需要使用准备好的语句。否则,您将面临 SQL 注入的风险。

您说您在 cmets 中使用 mysqli_ api 进行了尝试,并且您可能使用了 mysqli_ 等效项,从而为您提供相同的结果/永远循环。

您还可以考虑使用分页,它也使用 LIMIT 来限制记录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 2013-04-04
    相关资源
    最近更新 更多