【问题标题】:How to make a table with MySQL queries如何使用 MySQL 查询创建表
【发布时间】:2017-12-22 05:57:25
【问题描述】:

我正在尝试制作一个表格来显示 MySQL 查询的结果,但我很难做到正确...

我有 PHP 代码用这个脚本显示数据库表的内容;

<?php   
 // Grab the data from our people table
 $sql = "SELECT * FROM people ORDER BY ID";
 $result = mysql_query($sql) or die ("Could not access DB: " . mysql_error());
 while ($row = mysql_fetch_assoc($result)) {
   echo "<div class=\"picture\">";
   echo "<p>";
   // Note that we are building our src string using the filename from the database
   echo "<img src=\"content/uploads/" . $row['filename']
         . "\" alt=\"\" height=\"125\" width=\"200\" /><br />" . "<br />";
   echo $row['fname'] . " " . "<br />" . "<br />";
   echo "</p>";
   echo "</div>";
 }
?>

但是这当然没有非常难看的表格,因为它显示了彼此下方的所有内容......所以我尝试为它制作一个表格,经过大量研究后,我找到了一个应该显示的脚本内容,但我似乎无法将其实现到我自己的代码中并最终出现错误:

无法访问数据库:未选择数据库

使用此代码:

<?php
$sql="SELECT * FROM people ORDER BY ID";
$result=mysql_query($sql) or die ("Could not access DB: " . mysql_error());
$num=mysql_numrows($result);mysql_close();?>
<table border="0" cellspacing="2" cellpadding="2">
<tr>
<td>
<font face="Arial, Helvetica, sans-serif">Value1</font>
</td>
<td>
<font face="Arial, Helvetica, sans-serif">Value2</font>
</td>
</tr>
<?php
$i=0;while ($i < $row) {$f1=mysql_fetch_assoc($result,$i,"field1");
$f2=mysql_fetch_assoc($result,$i,"field2");
$f3=mysql_fetch_assoc($result,$i,"field3");
$f4=mysql_fetch_assoc($result,$i,"field4");
$f5=mysql_fetch_assoc($result,$i,"field5");?>
<tr>
<td>
<font face="Arial, Helvetica, sans-serif"><?php echo $f1; ?></font>
</td>
<td>
<font face="Arial, Helvetica, sans-serif"><?php echo $f2; ?></font>
</td>
</tr>
<?php
$i++;}
?>

【问题讨论】:

  • 拜托,don't use mysql_* functions,它们不再维护,而是officially deprecated。改为了解prepared statements,并使用PDOMySQLi。您还想Prevent SQL Injection!
  • 你是如何连接到你的数据库的?看来您缺少代码。
  • 我有一个单独的 conn.php 连接到页面开头的数据库... 保存所有数据库登录信息并使用第一个代码。我知道我应该尝试使用 PDO 或 MySQLi,但作为一个菜鸟,我首先要学会正确使用它,当我实现它时,我会查看 mySQLi 代码,看看需要改变什么;)
  • conn.php中是否有错误检查?在您打开&lt;?php 标签error_reporting(E_ALL); ini_set('display_errors', 1); 之后立即在文件顶部添加错误报告从一开始就学习比更改更容易,因为很多事情都会有所不同。
  • 请不要在 cmets 中转储代码,那样它们几乎不可读。编辑您的原始帖子以添加新内容。

标签: php mysql image html-table


【解决方案1】:

不知道这里发生了什么

mysql_fetch_assoc($result,$i,"field1")

Mysql_fetch_assoc 只接受一个参数

正确的使用方法如php man page所示

while ($row = mysql_fetch_assoc($result)) 
{?>
  <tr>
    <td>
      <font face="Arial, Helvetica, sans-serif"><?php echo $row['value1']; ?></font>
    </td>
    <td>
      <font face="Arial, Helvetica, sans-serif"><?php echo $row['value2']; ?></font>
   </td>
  </tr>
<?php
}

如果您打开了错误和警告,那么您会收到有用的错误消息,告诉您您的代码出了什么问题。始终推荐turn them on 进行开发。

【讨论】:

  • 确实是那个部分给出了错误,但是在将它编辑成你建议的内容后,这给我留下了一个空白页......经过一些修改,它显示了图片但仍然没有文字信息与图片,它再次给了我没有选择的数据库。该表是在没有选择数据库错误的图片下方创建的,并且它不显示数据库中的 fname 和 lname 行
  • 如果数据库列名为 fname 和 lname,您需要将 cvalue1 和 value2 更改为这些名称
猜你喜欢
  • 2013-06-29
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-24
相关资源
最近更新 更多