大家好我刚刚开始学习PHP大约8天前。我试图从SQL表中加载注释并按其ID排序。要做到这一点,我想使用一个数组并添加到注释id,然后它将按顺序。
EX :( Ik这不是正确的代码)
while loop through SQL table{
array[3] = This is comment 3.
array[1] = This is comment 1.
array[0] = This is comment 0.
array[2] = This is comment 2.
}
正如您所看到的,它只是通过索引将评论按正确顺序排列。我将如何在PHP中执行此操作?
这是我到目前为止所做的并且不起作用:
$return = "";
$array = array();
$lowers = 0;
$res2 = mysql_query("SELECT * from `".Mod::$id."_comments`");
if($res2){
while($row = mysql_fetch_assoc($res2)){
if($row['id'] < $lowers){
$lowers = $row['id'];
}
$name = $row['id'] . "_delete";
$array[$row['id']] = "<div class=\"caption\"><hr><h5>"
. getUserByUUID($row['uuid']) . " (" . date('m/d/Y', $row['timestamp']) . ") <input type=\"button\" name=\"" . $name .
"\" id=\"" . $name . "\" value=\"Delete\" onClick=\"CALLJAVASCRIPTFUNCTIONHERE()\" ></h5>
<figure class=\"img-polaroid\">" .
$row['comment'] . "</figure>
</div>";//TODO CHANGE THE CALL JAVA SCRIPT FUNCTION TO THE PROPER FUNCTION!!!!!
alert("ARRAY: " . $array[$row['id']]);//This is getting called but it does nothing. Also I made a php function called alert that DOES work.
}
}
for($loop = $lowers; $loop < (count($array) + $lowers); $loop++){
alert("LOOP: " . $loop);
$return = $return + $array[$loop];
}
return $return;
for($loop = $lowers; $loop < (count($array) + $lowers); $loop++){
alert("LOOP: " . $loop);
$return = $return + $array[$loop];
}
return $return;
感谢您的帮助。
答案 0 :(得分:1)
Buddy你的做法是完全错误的。为什么不必要地循环和处理?
您可以在使用ORDER BY子句执行查询时执行此操作。
答案 1 :(得分:0)
如果您希望按索引(键)对PHP数组进行排序,那么您正在寻找的是一个名为ksort()的内置函数。
来自PHP.net(上面的链接):按键对数组进行排序,维护数据关联的关键。这主要用于关联数组。
如果您希望从数据库中对返回的ID进行排序,只需将查询更改为:
"SELECT * from `".Mod::$id."_comments` ORDER BY `id` ASC" (DESC if you want the newest first)
答案 2 :(得分:0)
您不需要整个代码,删除它并尝试此答案中的代码, 并改变你所需的值, 别忘了将 YourTableName 更改为实际的表名。 它会做什么来选择所有的东西,并将通过他们的id订购结果。谢谢,
$res2 = mysql_query("SELECT * from YourTableName ORDER BY id ASC");
//Change YourTableName to your actual table name
if($res2){
while($row = mysql_fetch_assoc($res2)){
echo $row['id'].' :'.$row['comment'].'<br/>';
}
}