PHP Prepared语句ORDER BY列名

时间:2014-03-04 22:47:32

标签: php mysqli prepared-statement

我在预编译语句中使用ORDER BY打印一些内容时遇到问题,因为它是一个列,我想我必须使用?而不是写下我想要的内容,但是虽然我尝试改变它,但出现了问题,因为它没有正确排序。我认为我的语法可能有误,您会建议或建议我这样做?下面是代码:

$n = 0;
$item_number = 0;
//Array which iterates over all objects in a given users object_id
$ref[$n];
$rowsize = 12;

for ($i = 0; $i < $rowsize; $i++) {

    $stmt = $mysqli->stmt_init();
    $stmt->prepare('SELECT z, name FROM house_room1 INNER JOIN objects ON house_room1.object_id=objects.object_id WHERE house_room1.ref_id = ? ORDER BY z'); 
    $stmt->bind_param('i', $i
    );
    if ($stmt->execute()) {
        $stmt->bind_result($z, $name);
        while($stmt->fetch()) {
            echo '<li id="item-' . $item_number . '" class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>' . $name . '</li>'; 
            }
        }
     else {
        echo 'Something went terribly wrong' . $mysqli->error;
    }
    $stmt->close();
    $n++;
    $item_number++;
}  
编辑:呃我不知道缩进的内容..顺便说一下,它应该按照“z”栏的顺序排列

EDIT2:我想看到数据库中的所有名称都按照z值排序,所以如果值为0,则应首先显示z值为0的名称。数据库中的z值从0到12.它连接到另一个表,该表具有该特定z值的特定对象的名称。

目前没有任何事情发生,无论我将ORDER BY更改为什么,这些东西都会被object_id而不是z排序,很奇怪。

0 个答案:

没有答案