5

このコードは 1 行のみを返しますが、2 行を返す必要があります。phpMyAdmin で SQL を試したところ、2 行が完全に返されました。ここで何が間違っていますか?

$request_list_result = $mysqli->query("
SELECT buddy_requester_id, buddy_reciepient_id, user_id, user_fullname FROM sb_buddies
JOIN sb_users ON buddy_requester_id=user_id
WHERE buddy_status='0' AND buddy_reciepient_id='". get_uid() ."'");

$request_list_row = $request_list_result->fetch_array();

echo $request_list['user_fullname'];

ちなみに、上記のコードは次のスクリプトを介して profile.php へのプロセスを取得しています。

$index = new Template('views/template/one.php', array(
'subtitle' => 'Dashboard',
'stylesheets' => array('/assets/css/profile.css'),
'scripts' => array('/assets/js/dashboard.js'),
'sidebar' => 'sidebar.php',
'content' => 'views/profile.php',
'errors' => $errors,
'successes' => $successes,
'request_list' => $request_list_row //right here
), true);
4

3 に答える 3

8
 mysqli_result::fetch_array

単一の行を配列としてフェッチするだけです。

 mysqli_result::fetch_all

すべての行をフェッチします。

詳細はこちら

http://php.net/manual/en/mysqli-result.fetch-all.php

于 2012-12-01T23:08:57.133 に答える
5

結果をループする必要があります(TheSmoseが述べたように)

while ($request_list_row = $request_list_result->fetch_array()) {
    echo $request_list['user_fullname'];
}

そして$request_list、結果の配列を ではなくテンプレートに送信する必要があります$request_list_row

これを変える

'request_list' => $request_list_row //right here

これに

'request_list' => $request_list //right here

user_fullnameテンプレート以外のものが必要な場合(および に必要な PHP >= 5.3 がない場合mysqli_result::fetch_all)、ループ内に独自の配列を構築する必要があります。

あなたのテンプレート コードが何を期待しているかはわかりませんが、試すことはできます

while ($request_list_row = $request_list_result->fetch_array()) {
    echo $request_list[] = $request_list_row;
}
于 2012-12-02T03:04:29.723 に答える
1

結果をループする必要があります。現状では、最初の行のみをフェッチしています。

$uid = get_uid();
$sql = "SELECT buddy_requester_id, buddy_reciepient_id, user_id, user_fullname 
        FROM sb_buddies
        JOIN sb_users ON buddy_requester_id=user_id
        WHERE buddy_status='0' AND buddy_reciepient_id='{$uid}'";

$request_list_result = $mysqli->query($sql);

while ($request_list_row = $request_list_result->fetch_array()) {
    echo $request_list['user_fullname'];
}
于 2012-12-01T23:08:26.373 に答える