Mysqli检索表打印标题而不是数据

时间:2015-06-01 19:15:36

标签: php html mysql mysqli

我尝试在标题中解释这一点,但是使用我当前的代码而不是打印数据库中存在的数据,它会打印每列的标题(PO,日期,作业名称)数据库中的每一行。由于我的数据库到目前为止有两行值,因此它只有两行副本 “PO日期作业名称”,我无法弄清楚为什么打印标题而不是表格中的实际数据。任何帮助都会很棒

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<?php
require 'classes/Mysql.php';
$conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or die('There was a problem        connecting to the database');

$query = 'SELECT "PO", "Date", "Job Name" FROM po_10152796 LIMIT 10';
$results = mysqli_query($conn,$query);
    ?>


<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<h1>Job list</h1>
<table id="fairtable">
            <tr>
                <td>PO Number</td>
                <td>Date</td>
                <td>Job Name</td>
            </tr>
            <?php
            while($rowitem = mysqli_fetch_array($results)) {
                echo "<tr>";
                echo "<td>" . $rowitem['PO'] . "</td>";
                echo "<td>" . $rowitem['Date'] . "</td>";
                echo "<td>" . $rowitem['Job Name'] . "</td>";
                echo "</tr>";
            }
            ?>
        </table>

</body>
</html>

3 个答案:

答案 0 :(得分:1)

首先,您的查询中的列包含在引号中,而这些引号不是正确的identifier qualifiers

SELECT "PO", "Date", "Job Name"

其次,由于你的一个列包含一个空格,因此在它周围时使用它周围的刻度,以及它们中的所有列。您不必这样做,但由于两个字之间的空格,Job Name列名必须包含在刻度中。

SELECT `PO`, `Date`, `Job Name`

另外,这应该会在检查错误时抛出错误,例如:

$results = mysqli_query($conn,$query) or die(mysqli_error($conn));
  • 还要确保您的文件确实是.php分机; 洞察

  • 最好使用下划线与Job_Name分隔,并将列名重命名为该名称。这样你就不需要它周围的刻度线,除非它是MySQL reserved word

参考文献:

答案 1 :(得分:0)

您现在实际上正在选择字符串值。

而不是

SELECT "PO", "Date", "Job Name" FROM po_10152796 LIMIT 10

你应该通过这样做来选择你的专栏

SELECT `PO`, `Date`, `Job Name` FROM po_10152796 LIMIT 10

答案 2 :(得分:0)

在这里:

value

您正在选择这些字符串,而不是字段,请尝试:

$query = 'SELECT "PO", "Date", "Job Name" FROM po_10152796 LIMIT 10';