Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL查询使用PHP在HTML表中不显示结果_Php_Mysql_Html Table - Fatal编程技术网

MySQL查询使用PHP在HTML表中不显示结果

MySQL查询使用PHP在HTML表中不显示结果,php,mysql,html-table,Php,Mysql,Html Table,我正试图为我的一个小客户建立一个简单的库存数据库(我通常不做WebDev的工作),但我有点不知所措。我有我认为应该有效的方法,但我的表中没有结果。我知道这个查询很好,因为我直接查询数据库时得到了预期的结果,除非PHP希望我的SQL语句有不同的格式。这是我的页面: <html> <head> <title>Inventory</title> </head> <body> <?php $con=mysqli_co

我正试图为我的一个小客户建立一个简单的库存数据库(我通常不做WebDev的工作),但我有点不知所措。我有我认为应该有效的方法,但我的表中没有结果。我知道这个查询很好,因为我直接查询数据库时得到了预期的结果,除非PHP希望我的SQL语句有不同的格式。这是我的页面:

<html>
 <head>
  <title>Inventory</title>
 </head>
 <body>
<?php
$con=mysqli_connect("localhost","user","pass","db_name");
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }


$query = "SELECT 
            products.name,
            products.sku,
            inventory.quantityfry,
            inventory.quantityjuv,
            inventory.quantityadult,
            inventory.notes,
            inventory.location,
            inventory.owner
          FROM 
            products
          INNER JOIN 
            inventory
          ON
            products.sku=inventory.sku";

$result = mysqli_query($query);
echo "<table border='1'>
<tr>
<th>Species</th>
<th>SKU</th>
<th>Fry Count</th>
<th>Juvie Count</th>
<th>Adult Count</th>
<th>Notes</th>
<th>Location</th>
<th>Owner</th>

</tr>";

while ($row = mysqli_fetch_assoc($result)) {
    echo "<tr>";
    echo "<td>" . $row['name'] . "</td>";
    echo "<td>" . $row['sku'] . "</td>";
    echo "<td>" . $row['quantityfry'] . "</td>";
    echo "<td>" . $row['quantityjuv'] . "</td>";
    echo "<td>" . $row['quantityadult'] . "</td>";
    echo "<td>" . $row['notes'] . "</td>";
    echo "<td>" . $row['location'] . "</td>";
    echo "<td>" . $row['owner'] . "</td>";
    echo "</tr>";
}

mysqli_free_result($result);

echo "</table>";

mysqli_close($con);
?> 
 </body>
</html>

库存

当我加载页面时,我看到的只是HTML表头,但没有数据。也没有错误消息。我遗漏了什么?

您看不到错误消息,因为您不必检查它们。您错误地调用了
mysqli\u query
,因为您没有检查错误,所以永远看不到错误:

$result = mysqli_query($con, $query) or die(mysqli_error($con));
                       ^^^^---required  

由于使用不正确,查询调用返回false。然后,您盲目地尝试从该布尔值FALSE中获取结果行,这将导致进一步的错误,并且您的
while()
循环根本不会执行。

尝试向查询传递DB连接
$result=mysqli\u query($con,$query)此处似乎缺少某些内容$结果=mysqli_查询($query);下一次,检查
result
。谢谢Marc B。这是我第一次在PHP中使用mysqli函数,所以我对错过它并不感到惊讶。还有什么我遗漏了,或者应该做不同的事情吗?除了$con的东西,代码没有什么真正的错误。在风格上,您可能希望研究打破PHP模式以输出“固定”的HTML/文本块,或者至少使用一个而不是多行回音。但是,这只是风格上的问题。@tycoonbob是的,在HTML上下文中输出文本时,您会错过
htmlspecialchars
调用。