[英]Select the 5 latest records in a table with PHP and fill an ordered list with that in HTML
我正在嘗試學習如何使用php在帶有最新時間戳的表中的5條記錄中填充html頁中的有序列表。 我已經弄清楚了大多數組件(用php掙扎了一點),但是最終還是可以的。 我面臨的挑戰主要是讓它以正確的方式彼此交談。 只要有人訪問我的網頁,就應該填寫前5名列表。 因此,當有人訪問我的頁面時,php應該關閉。 這是否意味着我只是將其放在索引頁的頂部? 我更喜歡將其單獨放在另一個php文件中,並將這些行存儲為會話變量,以將它們帶回到索引頁中。
html列表:
<?php
$connection=mysqli_connect("...", "...", "...", "...")
or die ("kan niet connecten met database");
$top_5_overview = mysqli_query($connection, "SELECT * FROM search_table ORDER BY upgedate DESC LIMIT 5")
or die ("kan query1 niet uitvoeren");
$top_5 = mysqli_fetch_array($top_5_overview);
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<ol>
<?php
foreach ($top_5 as $t){
echo '<li> <a href="'.$t['url'].'" target='_blank'>'.$t['atlasnaam'].'</a></li>';
}
?>
</ol>
</body>
</html>
top_5_overview開頭缺少$,應為$ top_5_overview。
而且,您不會將該查詢的結果綁定到$ top_5 -array。 而是在您的代碼中有mysqli_fetch_array($ query1)
嘗試這個:
$top_5_overview = mysqli_query($connection, "SELECT * FROM search_table
ORDER BY upgedate DESC LIMIT 5")
or die ("kan query1 niet uitvoeren");
$top_5 = mysqli_fetch_array($top_5_overview);
您發送的代碼示例中有些錯誤。
SQL
應該在列名后而不是在其后有DESC
。 mysqli_fetch_array()
的調用僅返回結果的一行。 您可以使用while
循環迭代所需的5行。 while
循環還可以防止空結果,如果不返回任何行,則循環內的代碼永遠不會被調用。 foreach
,因為你是路過一排的陣列,它試圖通過陣列上的值進行迭代預期將無法正常工作。 '
和"
在您的字符串,在具體"target='_blank'>
這讓_blank
不是字符串的一部分,和的‘代碼’,所以一部分。 此代碼示例對我有用:
<?php
$connection=mysqli_connect("...", "...", "...", "...")
or die ("kan niet connecten met database");
$result = mysqli_query($connection,
"SELECT * FROM search_table ORDER BY upgedate DESC LIMIT 5")
or die ("kan query1 niet uitvoeren");
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<ol>
<?php
while ($row = mysqli_fetch_assoc($result)) {
echo '<li><a href="' .
$row['url'] . '" target="_blank">' .
$row['atlasnaam'] . '</a></li>';
} ?>
</ol>
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.