簡體   English   中英

PHP使用mysql_fetch_array填充表

[英]PHP using mysql_fetch_array to fill a table

確定在您告訴我使用mysqli之前,我故意在Webapp課程中使用折舊的方法。 我不是學生,這不是家庭作業,而是幫助我教會對Web應用程序安全性的理解。

我不知道為什么這行不通。 基本上,我要做的就是創建一個頁面,該頁面從mysql數據庫中獲取數據並將其放入表中,如圖所示。 在這一點上,我開放。

先感謝您。

  <html> <head><title>Untitled</title></head> <body> <h1>Weblog Example</h1> <dl> <?php mysql_connect("localhost","root",""); mysql_select_db("blog1"); $query ="SELECT entrytitle, entrytext,"; $query.=" DATE_FORMAT(entrydate, '%M %d, %Y') AS entrydate"; $query.=" FROM weblog ORDER BY entrydate DESC LIMIT 10"; $result=mysql_query($query); ?> <table width="90%" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC"> <tr> <td width="15%" align="center" bgcolor="#E6E6E6"><strong>Title</strong></td> <td width="75%" align="center" bgcolor="#E6E6E6"><strong>Entry</strong></td> <td width="15" align="center" bgcolor="#E6E6E6"><strong>Date/Time</strong></td> </tr> <?php while($rows=mysql_fetch_array($result)){ ?> <tr> <td align="center" bgcolor="#FFFFFF"><? echo $rows['entrytitle']; ?></td> <td align="center" bgcolor="#FFFFFF"><? echo $rows['entrytext']; ?></td> <td align="center" bgcolor="#FFFFFF"><? echo $rows['entrydate']; ?></td> </tr> <?php } ?> </dl> </body> </html> 

好的-進行了一些較小的編輯-現在它在表中給了我3行,但沒有填充數據...

您在while循環中使用了錯誤的變量,也沒有從查詢結果中引用正確的date列。

這應該給您您想要的東西:

<?php
  while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><?php echo $rows['entrytitle']; ?></td>
<td align="center" bgcolor="#FFFFFF"><?php echo $rows['entrytext']; ?></td>
<td align="center" bgcolor="#FFFFFF"><?php echo $rows['entrydate']; ?></td>
</tr>

<?php
}
?>

在$ entrytitle和$ entrytext上執行var_dump,您將了解錯誤。 當您執行mysql_fetch_array時,數據被臨時存儲到$ rows中。

<?php
  while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><? echo $rows["entrytitle"]; ?></td>
<td align="center" bgcolor="#FFFFFF"><? echo $rows["entrytext"]; ?></td>
<td align="center" bgcolor="#FFFFFF"><? echo $rows["entrytext"]; ?></td>
</tr>

<?php
}
?>

您的兩個$query.=應該都讀為$query .= ,這將是一個問題,並且由於點前缺少空格而無法正確連接。

您還缺少</table>標記。

另外,請確保已設置/打開短標簽,否則<?php echo $rows...
而不是<? echo $rows... <? echo $rows...

您還應該使用以下方法檢查可能的查詢錯誤:

$result = mysql_query($query) or die(mysql_error());

並使用錯誤報告

將錯誤報告添加到文件頂部,這將有助於發現錯誤。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:錯誤報告僅應在登台進行,而不應在生產過程中進行。



暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM