[英]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
旁注:錯誤報告僅應在登台進行,而不應在生產過程中進行。
mysqli
或帶預備語句的PDO , 它們要安全得多 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.