gpt4 book ai didi

PHP - 订购数据库元素列表

转载 作者:可可西里 更新时间:2023-11-01 08:47:17 26 4
gpt4 key购买 nike

我正在显示基于数据库的项目列表。项目的顺序是 ProductID

当我向数据库添加一个项目时,它会自动分配一个 ProductID

但是,我希望能够要么

  • a) 按名称字母顺序对列表排序,不更改数据库中的 ProductID
  • b) 将另一列添加到数据库中,例如:Rank,并让此列表按 Rank 显示列表,而不是按 ProductID

这是我的代码。重写这部分代码以完成 a) 或 b) 的任何帮助都将非常有帮助!

PS:我对PHP和数据库有点熟悉,但绝不是一个有经验的编码员。

$category = array_search(strtolower('upright'), $CFG["Category"]);
$product2 = new ProductData();
$where2 = sprintf(" WHERE CategoryID=%d ORDER BY ProductID DESC", $category);
$rows2 = $product2->GetRows($where2);

$count2 = count($rows2);
$line_count2 = 4;
$total_lines2 = ceil($count2/$line_count2);

// Photo
$photo5 = new PhotoData();

$thumb_array5 = array();
$count3 = count($rows2);
for ( $i = 0; $i < $count3; $i++ )
{
$ret = $photo5->Query($rows2[$i]["ProductID"]);
if ( $ret != 0 )
{
continue;
}

$thumb_array5[$photo5->Get("ProductID")] = $photo5->Get("Photo1");
}

最佳答案

您的 SELECT 查询未显示,我认为它来自您的 ProductData() 类。如果您可以更改包含排名的 ProductData() 源,则可以使用变量进行排名,例如:

 SELECT  
@Ranking := @Ranking + 1 AS Rank,
productID,
product_name
FROM yourTable t, (SELECT @Ranking := 0) r
ORDER BY product_name;

否则,您可以在 Php 中执行此操作:

首先将 ORRDER BY 更改为您的产品名称而不是产品 ID:

$category = array_search(strtolower('upright'), $CFG["Category"]);
$product2 = new ProductData();
$where2 = sprintf(" WHERE CategoryID=%d ORDER BY Product_Name", $category);

然后在你的 php 中使用一个变量来做排名:

 $count3 = count($rows2);
echo "<table><tr><th>Ranking</th><th>Product Name</th><th>Product Name</th></tr>";
for ( $rank = 0; $rank < $count3; $rank++ )
{
echo "<tr>";
echo "<td>$rank+1</td><td>".$rows2[$rank]["Product_name"]."</td><td><img src='".$photo5->Get("Photo1")."'></td>"
echo "</tr>";
}
echo "</table>";

关于PHP - 订购数据库元素列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24924025/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com