2014-12-03 84 views
0

我試圖使用PHP創建的HTML文檔中的表格,這裏是我的代碼:使用HTML PHP顯示數據庫

<p>Below is the table of all the books available: <br /> 

<table border="1" ><th>Book ID</th><th>Subject</th><th>Title</th><th>Print Edition</th><th>Condition</th><th>Asking Price</th> 


<?php 
    $server= 'MYSERVER'; 
    $user = 'MYUSERNAME'; 
    $password = 'MYPASSWORD'; 
    $database = 'MYDBNAME'; 
    $mysqli = new mysqli('server', 'user', 'password', 'database'); 
    foreach ($mysqli->query('SELECT user,host FROM mysql.user') as $row) 
    {?> 
    <tr><td><?php echo $res['ID'];?></td><td><?php echo $res['Subject'];?></td><td><?php echo $res['Title'];?></td><td><?php echo $res['PrintEdition'];?></td><td><?php echo $res['Cond'];?></td><td><?php echo $res['Price'];?></td></tr> 
<?php } 
mysqli_close($mysqli); 
?> 
</table> 

<br /> 
If you like to request any of these titles, Do the following: 

。 。 。 。

但是,似乎我不知道發生了什麼,但我有,這個是我的Chrome瀏覽器中的結果(這是我的網頁的實際截屏):


下面是所有的書籍表中可用: 查詢(「SELECT * FROM entry_database」)爲$行){> 圖書編號科目名稱打印版條件售價

(以上行看起來像一個表)

If you like to request any of these titles, Do the following: 

我不確定爲什麼會發生這種情況,但我有一種預感,那就是因爲HTML會將 - >當作標記。有沒有解決這個問題的方法?

只是爲了解釋,我已經看過所有的答案,嘗試了所有的答案,並且據我所知,我找不到答案。

非常感謝提前。

更新1:

所以我設法理清額外的代碼顯示,得益於@Fred -ii-

但是,數據沒有顯示。我嘗試了以下輸出日期,但沒有成功:

foreach ($mysqli->query('SELECT * FROM entry_database') as $row) 
    {?> 
    <?php echo $row['ID'];?><br /><?php echo $row['Subject'];?><br /><?php echo $row['Title'];?><br /><?php echo $row['PrintEdition'];?><br /><?php echo $row['Cond'];?><br /><?php echo $row['Price'];?><br /> 
<?php } 
mysqli_close($mysqli); 
?> 

我們到達那裏,我肯定

+2

加上'$'來'(「服務器」,「用戶」,「密碼」,「數據庫」)',並確保您的文件'.php'這就是爲什麼你的網頁出現這種方式。 – 2014-12-03 15:40:33

+0

@ Fred-ii-難道你不應該把它作爲答案嗎? – Jonast92 2014-12-03 15:42:28

+0

@ Jonast92我應該但我只是怕它會導致更多的問題,比如「我的數據沒有從DB顯示......」。我知道這次演習太好了) – 2014-12-03 15:43:22

回答

4

好吧,我會做這是一個答案:

$('server', 'user', 'password', 'database')應該讀爲
($server, $user, $password, $database)否則PHP會向您發送一條關於「未定義常量...」的消息。

您需要確保您的文件是.php,這就是您的網頁以這種方式出現的原因,作爲代碼而不是被正確解析。

您可以指示Apache將.html文件視爲PHP,但這只是更多的工作。

這個我高度懷疑是你在做什麼,試圖運行一個.html文件,並期望它像PHP一樣運行它,就像Web瀏覽器對HTML文件一樣。

  • 如果您試圖在自己的計算機上運行此操作,則需要安裝Web服務器。

另外,你在做as $row和呼應echo $res,應該是as $res

你也只能選擇「用戶」,並從SELECT user,host「主持人」欄目,並希望呼應IDSubjectTitlePrintEditionCondPrice,這將不起作用。

您需要添加/選擇所有這些列,或者執行SELECT *並確保這些列確實存在於您的表中。


編輯:

替換此塊:

foreach ($mysqli->query('SELECT user,host FROM mysql.user') as $row) { 
    ?> 
    <tr> 
     <td><?php echo $row['ID'];?></td> 
     <td><?php echo $row['Subject'];?></td> 
     <td><?php echo $row['Title'];?></td> 
     <td><?php echo $row['PrintEdition'];?></td> 
     <td><?php echo $row['Cond'];?></td> 
     <td><?php echo $row['Price'];?></td> 
    </tr> 

與:

$results = $mysqli->query('SELECT * FROM entry_database'); 

while($row = $results->fetch_assoc()) { 
    ?> 
    <tr> 
     <td><?php echo $row['ID'];?></td> 
     <td><?php echo $row['Subject'];?></td> 
     <td><?php echo $row['Title'];?></td> 
     <td><?php echo $row['PrintEdition'];?></td> 
     <td><?php echo $row['Cond'];?></td> 
     <td><?php echo $row['Price'];?></td> 
    </tr> 

或:

<!DOCTYPE html> 
<head></head> 
<body> 
    <table style="width: 100%;" border="1" cellspacing="5" cellpadding="5"> 
     <thead> 
      <tr> 
      <th align="left" valign="middle">ID</th> 
      <th align="center" valign="middle">Subject</th> 
      <th align="center" valign="middle">Title</th> 

      <th align="left" valign="middle">PrintEdition</th> 
      <th align="center" valign="middle">Cond</th> 
      <th align="center" valign="middle">Price</th>    
     </tr> 
    </thead> 
    <tbody> 
    <?php 
    $server= 'MYSERVER'; 
    $user = 'MYUSERNAME'; 
    $password = 'MYPASSWORD'; 
    $database = 'MYDBNAME'; 
    $mysqli = new mysqli($server, $user, $password, $database); 
    $results = $mysqli->query('SELECT * FROM entry_database'); 
    while($row = $results->fetch_assoc()): ?> 
     <tr> 
      <td align="center" valign="middle"><?php echo $row['ID']; ?></td> 
      <td align="center" valign="middle"><?php echo $row['Subject']; ?></td> 
      <td align="left" valign="middle"><?php echo $row['Title']; ?></td> 
      <td align="center" valign="middle"><?php echo $row['PrintEdition']; ?></td> 
      <td align="center" valign="middle"><?php echo $row['Cond']; ?></td> 
      <td align="left" valign="middle"><?php echo $row['Price']; ?></td> 
     </tr> 
    <?php endwhile;?> 
    </tbody> 
</body> 
</html> 
+0

非常感謝您的意見和幫助。我已經將服務器更改爲$ server等,我也更改了SQL查詢的範圍以包含所有內容。你想如何將文件更改爲PHP?我應該只更改擴展名嗎?我正在服務器上運行它,但我正在使用Dreamweaver編輯頁面和文件。再次感謝所有的幫助,併爲我的無辜表示道歉。 – Sep 2014-12-03 18:32:31

+0

@Sep不客氣。是的,您需要將文件的擴展名更改爲'.php',以便正確解析。 – 2014-12-03 18:35:46

+0

很棒。非常感謝@Fred。所以表格正在更新,但現在問題是數據沒有顯示。我試圖只輸出數據,但仍然沒有。我已經添加了一個更新代碼來檢查日期 – Sep 2014-12-03 19:14:42

0
$mysqli = new mysqli('server', 'user', 'password', 'database'); 

應該

$mysqli = new mysqli($server, $user, $password, $database); 
+0

你還沒有讀完整個問題。 – 2014-12-03 15:44:05

+0

我會假設用戶對他們進行了硬編碼,但在發佈之前對其進行了更改,以免暴露敏感數據。 – 2014-12-03 18:21:09

0

你的代碼必須是這樣的:在foreach

<p>Below is the table of all the books available: <br /> 

<table border="1" > 
    <thead> 
     <tr> 
      <th>Book ID</th> 
      <th>Subject</th> 
      <th>Title</th> 
      <th>Print Edition</th> 
      <th>Condition</th> 
      <th>Asking Price</th> 
     </tr> 
    </thead> 

    <tbody> 

<?php 
$server= 'MYSERVER'; 
$user = 'MYUSERNAME'; 
$password = 'MYPASSWORD'; 
$database = 'MYDBNAME'; 
$mysqli = new mysqli($server, $user, $password, $database); 
foreach ($mysqli->query('SELECT user,host FROM mysql.user') as $row) { 
    ?> 
    <tr> 
     <td><?php echo $row['ID'];?></td> 
     <td><?php echo $row['Subject'];?></td> 
     <td><?php echo $row['Title'];?></td> 
     <td><?php echo $row['PrintEdition'];?></td> 
     <td><?php echo $row['Cond'];?></td> 
     <td><?php echo $row['Price'];?></td> 
    </tr> 
    <?php 
} 
?> 

<br /> 
If you like to request any of these titles, Do the following: 

你在變量$行
那麼你所使用的值$資源定義的值,這是不會工作
也mysqli連接是錯誤的定義。

我測試的代碼,該代碼爲我工作;)