PHP如何在任何索引中添加到数组?

时间:2014-10-04 03:15:08

标签: php sql arrays

大家好我刚刚开始学习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;

感谢您的帮助。

3 个答案:

答案 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/>';

        }
        }