我尝试在标题中解释这一点,但是使用我当前的代码而不是打印数据库中存在的数据,它会打印每列的标题(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>
答案 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';