MySQL Query基于PHP Array

时间:2012-11-30 09:29:59

标签: php mysql arrays

这是我的数组:

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

Array的关键是我想在查询中运行的用户的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条记录。

有什么想法吗? 感谢

2 个答案:

答案 0 :(得分: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);
}

它已经过实际测试并且有效。

答案 1 :(得分:0)

你做错了$id = 100,101;$id = ‘100,101’; 试试这个

  $id = "100,101";

或者

  $id = '100,101';

甚至可以这样做

    $id = 100;
    $id .= ",";
    $id .= 101 ;