0

ここに私の配列があります:

array (size=2)
  100 => 
    array (size=2)
      'trade' => int 5
      'gold' => int 10
  101 => 
    array (size=2)
      'trade' => int 10
      'gold' => int 20

配列のキーは、クエリで実行したいユーザーの ID です。おそらくINを使用する必要があることがわかりました。例:

    SELECT * FROM `users` WHERE `id` IN (:id)

(:id はスクリプト内で $id に置き換えられます)

今私がするとき

     SELECT * FROM `users` WHERE `id` IN (100,105)

(テスト目的で)動作します。

準備が必要なので設定すると

$id = 100,101; 

また

$id = ‘100,101’; 

100 レコードのみが表示されます。

何か案は?ありがとう

4

2 に答える 2

0

implodearray_keysを使用できます:

"SELECT * FROM `users` WHERE `id` IN (" . implode(",", array_keys($array)) . ")"

配列を手動で使用 / 指定することで、これをテストできます。

$array = array(
    100 => array(
        'trade' => 5,
        'gold' => 10,
    ),
    101 => array(
        'trade' => 10,
        'gold' => 20,
    )
);

$sql = "SELECT * FROM `users` WHERE `id` IN (" . implode(",", array_keys($array)) . ")";
$result = mysqli_query($sql);

while($row = mysqli_fetch_assoc($result)){
    var_dump($row);
}

実際にテストされ、動作します。

于 2012-11-30T09:37:45.463 に答える
0

$id = 100,101;彼らはあなたがしたこととこれを$id = ‘100,101’; 試してみることは両方とも間違っています

  $id = "100,101";

またはこれ

  $id = '100,101';

またはこれを行うこともできます

    $id = 100;
    $id .= ",";
    $id .= 101 ;
于 2012-11-30T09:51:51.400 に答える