我有一个自定义的网上商店,它是用 php 制作的。它从存储在 mySQL 数据库中的某些类别中获取我的所有产品,并将它们显示在我的客户的表格中。该编程看起来是为了按添加日期对它们进行排序,但这不起作用。我已经多次尝试不同的变量,但没有任何帮助。这里的语法有问题吗?
这是实际列表的代码(页面上方):
$dynamicList = "";
$sql = mysql_query("SELECT * FROM products ORDER BY date_added DESC LIMIT 5");
$productCount = mysql_num_rows($sql); // count the output amount
if(isset($_GET['category'])) {
$category = $_GET['category'];
$sql = mysql_query("SELECT * FROM products WHERE category = '$category'");
$num_rows = mysql_num_rows($sql);
if($num_rows > 0) {
while($row = mysql_fetch_array($sql)) {
$id = $row["id"];
$product_name = $row["product_name"];
$price = $row["price"];
$date_added = strftime("%b %d, %Y", strtotime($row["date_added"]));
$dynamicList .= '<table width="65%" border="15" cellspacing="0" cellpadding="6" align="center">
<tr>
<td width="17%" valign="top"><a href="product.php?id=' . $id . '"><img style="border:#000000 1px solid;" src="inventory_images/' . $id . '.jpg" alt="' . $product_name . '" width="155" height="155" border="1" /></a></td>
<td width="83%" valign="center">' . $product_name . '<br />
$' . $price . '<br />
<a href="product.php?id=' . $id . '"><img src="style/detailssm.png" border="0" alt="Tube Bender"></a></td>
</tr>
</table>';
}
}
}
mysql_close();
?>
我的产品数据库包含上面代码中列出的所有属性,并且它们都已填写(如产品名称、添加日期、类别等)。我真的希望能够按日期排序,或者添加一个新列,例如“显示顺序”,然后我只需将它们全部编号即可完成。但我不能仅仅替换该变量,因为当前的变量无论如何都不起作用:(
如果你们有任何想法,请告诉我。谢谢!
最佳答案
您的示例代码中有 2 个 sql 语句。第一个有一个 ORDER BY 子句,但似乎没有在任何地方使用。
第二个 SQL 语句没有 ORDER BY 子句,这是您用来构建动态列表表的语句。
关于php SQL 数组的动态列表 - 如何设置顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14844273/