1

多数 (100 ~ 800) の ID を持つ配列があります。データベースからの一致を使用して、配列から id を検索してデータベースにクエリを実行し、一致した結果を新しい配列に保存します。

私の配列:

//print_r($_POST["fb_friend_uid"])
Array
(
    [0] => Array
        (
            [id] => 263901486
        )

    [1] => Array
        (
            [id] => 502533736
        )
)

--1. 次に、配列の値がデータベース内のレコードと一致するかどうかを確認しようとしましたが、これは正しい方法ですか? :

$ids = join(',',$_POST["fb_friend_uid"]);

SELECT *
FROM vote WHERE
vote_fb_uid IN ($ids)
AND DATE(FROM_UNIXTIME(vote_time)) = DATE(NOW())";

--2. 次に、一致するレコードを新しい配列に保存するのに苦労しています-これは私が試したものです:

while($row=mysqli_fetch_assoc($result)){
    $savedResultsInNewArray=[$row['vote_fb_uid']];
}

新しい配列を次の形式で返すことを検討しています:echojson_encode($savedResultsInNewArray);

上記がそれを行う正しい方法であるかどうか少し確信が持てませんか?

4

1 に答える 1

0

最初の部分は、配列から ID を取得することです。ループでこれを行うことができます:

<?php

foreach ($_POST["fb_friend_uid"] as $uid) {
    $uids[] = $uid['id'];
}

$ids = join(',', $uids);

/*
 * Query is correct
 *
 * SELECT *
 * FROM vote WHERE
 * vote_fb_uid IN ($ids)
 * AND DATE(FROM_UNIXTIME(vote_time)) = DATE(NOW())";
*/

// For the returning part.

while($row=mysqli_fetch_assoc($result)){
    $savedResultsInNewArray[] = $row['vote_fb_uid'];
}
于 2013-05-26T21:28:11.457 に答える