【问题标题】:Simple mySql-php data display [closed]简单的mySql-php数据展示[关闭]
【发布时间】:2015-08-20 11:48:09
【问题描述】:

我想在 html 的表格中显示数据库中的内容。我在互联网上的某个地方找到了这个示例,并按照整个指南进行操作,直到我到达那里。它显示表和所有信息,但将数据库中的信息放入“$data[1]”和“$data[0]”中。 感谢它提前

<html>
<head>
<title>Search data</title>
</head>
<body>
<table>
  <tr>
    <td align="center">EMPLOYEES DATA</td>
  </tr>
  <tr>
    <td>
      <table border="1">
      <tr>
        <td>NAME</td>            
        <td>ADDRESS</td>
      </tr>
<?php
//the example of searching data 
with the sequence based on the field name
//search.php
mysql_connect("localhost","root","");//database connection
mysql_select_db("employees");

$order = "SELECT * FROM data_employees ORDER BY name";
//order to search data
//declare in the order variable

$result = mysql_query($order);  
//order executes the result is saved
//in the variable of $result

while($data = mysql_fetch_row($result)){
  echo("<tr><td>$data[1]</td><td>$data[0]</td></tr>");
}
?>
    </table>
  </td>
</tr>
</table>
</body>
</html>

【问题讨论】:

  • 如果可以的话,你应该stop using mysql_* functions。它们不再被维护并且是officially deprecated。改为了解 prepared statements,并考虑使用 PDO,it's really not hard。您还应该在查询中添加错误检查,例如 or die(mysql_error())。或者您可以在当前的错误日志中找到问题。
  • "它只是放入 "$data[1]" 和 "$data[0]"。" - 文件是 .php 扩展名吗?服务器运行?这是代码的一部分吗? with the sequence based on the field name 不应该在那里。
  • 安装网络服务器,或者如果在托管站点上,请将您的文件重命名为 file.php。那里;固定。
  • 这些 cmets 是否正在被阅读 Sam? - @JayBlanchard
  • 这就是我从一开始就告诉你的with the sequence based on the field name那行。你为什么接受下面的答案?那没有解决它,怀疑。

标签: php html mysql database


【解决方案1】:

你看这个

//the example of searching data 
with the sequence based on the field name
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

应该已经注释掉了。

我在 cmets 中告诉过你两次。

"它只是放入 "$data[1]" 和 "$data[0]"。" - 文件是 .php 扩展名吗?服务器运行?这是代码的一部分吗? with the sequence based on the field name 不应该在那里。 – Fred -ii- 25 分钟前

如果您在屏幕上没有看到任何内容,则说明您的服务器有问题。检查您的日志。如果这不起作用,那么您将知道在哪里寻找。就我而言,您的代码已检出。减去with the sequence based on the field name – Fred -ii- 8 分钟前

这是错误,而不是其他答案。

  • 让记录在这里清楚。

错误报告告诉你错误在哪里,正如我在 cmets 中所说的。

在您打开 PHP 标记(例如 &lt;?php error_reporting(E_ALL); ini_set('display_errors', 1);)之后将错误报告添加到文件顶部,然后是其余代码,以查看它是否产生任何结果。还将or die(mysql_error()) 添加到mysql_query()。可能会收到弃用通知,谁知道呢。检查错误。 – Fred -ii- 14 分钟前


只是一个补充说明:

您当前的代码对SQL injection 开放。使用mysqli with prepared statementsPDO with prepared statements它们更安全

【讨论】:

    【解决方案2】:

    您在双引号中调用数组变量,其中数组变量不能像普通变量那样显示。它们也被视为字符串,因此它显示数组变量。显示实际值有两种方式。

    Way1:
    echo "<tr><td>".$data[1]."</td><td>".$data[0]."</td></tr>";
    Way2:
    echo "<tr><td>{$data[1]}</td><td>{$data[0]}</td></tr>";
    

    我更喜欢方式1,因为第二种方式会导致执行速度慢。

    【讨论】:

    • 我知道了,它正在工作
    【解决方案3】:

    这确实是一个标准问题.....网上的答案很多。您需要正确调用这些值...

    while($data = mysql_fetch_row($result)){
      echo("<tr><td>".$data[1]."</td><td>".$data[0]."</td></tr>");
    }
    

    就像这里:

    Show values from a mySQL database table inside a html table in a page

    但你应该使用mysqli:

    http://tut.php-quake.net/en/mysql-php.html

    【讨论】:

    • 还是不行,谢谢解答。
    • 所以尝试以下方法:while($data = mysql_fetch_array($result)){ echo("&lt;tr&gt;&lt;td&gt;".$data[1]."&lt;/td&gt;&lt;td&gt;".$data[0]."&lt;/td&gt;&lt;/tr&gt;"); }@Jay Blanchard:这是正确的,但它有点脏,所以我永远不会使用它
    • 但我发布的帖子确实
    • 您如何从 OP 投票的“已解决的问题答案”中看到这不是服务器端问题.....但是感谢上帝,您对所有其他答案的评价都低了 xD
    • 您可以从 OP 的 cmets 中看到他有一个拼写错误 @messerbill,所以这是一个语法错误。正如我所说,这里的任何答案都不能解决 OP 的问题。你知道你可以删除这个答案并拿回你的分数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 2016-03-03
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多