2015-06-01 3 views
1

Я попытался объяснить это так же хорошо, как я мог в названии, но вместо моего текущего кода вместо того, чтобы печатать данные, которые присутствуют в базе данных, он вместо этого печатает заголовки каждого столбца (PO, Date, Job Name) для каждой строки в базе данных. Так как моя база данных имеет две строки значений, она имеет две копии строки, которая только говорит «Имя задания даты PO», я не могу понять, почему она печатает заголовок вместо фактических данных в таблице. Любая помощь будет большимMysqli извлекал заголовки таблиц вместо данных

<!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> 

ответ

1

Во-первых, ваши столбцы в запросе, завернутые в кавычки, которые не являются правильными identifier qualifiers:

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

Во-вторых, так как один из ваших колонок содержит пробел, использование клещей вокруг него, и все они, пока вы на нем. Вам не обязательно, но то, что Job Name имя столбца должно быть быть обернутым в тиках, из-за пробела между обоими словами.

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

Plus, который должен был выброшен вас ошибка, проверив на наличие ошибок, таких как:

$results = mysqli_query($conn,$query) or die(mysqli_error($conn)); 
  • Также убедитесь, что файл действительно .php расширение; проницательность.

  • В лучшем случае используйте знак подчеркивания, чтобы разделить их на Job_Name и переименовать название столбца в указанное имя. Таким образом вам не понадобятся тики вокруг него, если только это не MySQL reserved word.


Ссылки:

+1

Спасибо за то, что вы так чисты и лаконичны с вашим ответом! Действительно помог разобраться! –

+0

@NathanGeist Добро пожаловать, Натан, рад помочь, * ура * –

0

Вы на самом деле выбора значения строки прямо сейчас.

Вместо

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

Вы должны выбрать столбцы, делая

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

здесь:

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

Вы выбираете эти строки, а не поля, попробуйте следующее:

$query = 'SELECT p.PO, p.Date FROM po_10152796 AS p LIMIT 10'; 
Смежные вопросы