0

我正在使用 Ajax 请求将数据解析为 jquery。唯一的问题是我的查询只显示一个结果!我的查询有多个输出,并且只显示一个。

有人可以帮我吗?

$query = "SELECT u.id, c.id, c.chatbox_id, c.subject FROM tbl_users u, tbl_chatbox c WHERE '".$user_id."' = c.id";
$rows = array();

if ($result = $mysqli->query($query)) {
    while ($row = mysqli_fetch_assoc($result)) {
        $id = $row['id'];
        $subject = $row['subject'];
        $chatbox_id = $row['chatbox_id'];
    }
    $array = array(
        "result" => "1",
        "id" => $id,
        "subject" => $subject,
        "chatbox_id" => $chatbox_id
        );

    echo json_encode($array);
}
4

3 回答 3

2

试试下面

$query = "SELECT u.id, c.id, c.chatbox_id, c.subject FROM tbl_users u, tbl_chatbox c WHERE '".$user_id."' = c.id";
$rows = array();

if ($result = $mysqli->query($query)) {
  while ($row = $result->fetch_assoc()) {
    $id = $row['id'];
    $subject = $row['subject'];
    $chatbox_id = $row['chatbox_id'];

    $array[] = array(
    "result" => "1",
    "id" => $id,
    "subject" => $subject,
    "chatbox_id" => $chatbox_id
    );
  }

  echo json_encode($array);
}
于 2013-06-05T14:35:47.633 回答
1

你也可以试试这个。

$query = "SELECT u.id, c.id, c.chatbox_id, c.subject FROM tbl_users u, tbl_chatbox c  WHERE '".$user_id."' = c.id";
$rows = array();

if ($result = $mysqli->query($query)) {
 $i=0;
 while ($row = $result->fetch_assoc()) {
$id = $row['id'];
$subject = $row['subject'];
$chatbox_id = $row['chatbox_id'];

$array[$i] = array(
"result" => "1",
"id" => $id,
"subject" => $subject,
"chatbox_id" => $chatbox_id
);
$i++;

}

回声 json_encode($array); }

于 2013-06-05T15:25:36.893 回答
0

首先,改变这个:

while ($row = mysqli_fetch_assoc($result)) {

对此:

while ($row = $result->fetch_assoc()) {

您混合了 mysqli 的面向对象和过程风格,这可能会导致问题。该fetch_assoc文档有更多信息。

然后,只需将$array赋值放在while循环中:

while ($row = $result->fetch_assoc()) {
    $array[] = array(
        "result" => "1",
        "id" => $row['id'],
        "subject" => $row['subject'],
        "chatbox_id" => $row['chatbox_id']
    );
}

while循环完成后,$array将是一个关联数组的数组。你可以像这样使用它:

foreach($array as $db_row) {
    echo "This row's id is " . $db_row['id'] . '<br />';
    echo "This row's subject is " . $db_row['subject'] . '<br />';
}
于 2013-06-05T14:34:18.520 回答