使用多维数组数据在MySQL中查找数据

时间:2013-02-22 06:34:32

标签: php mysql syntax multidimensional-array

我一直试图搜索这个,但我一直在寻找问题的解决方案“MySQL到多维数组”

我有一个多维数组,我想使用数组中的值来搜索我的MySQL数据库并输出我需要的任何数据。

我是否使用WHERE条款? IN条款?我需要一些帮助

我有这个数组:

Array
(
    [0] => Array
        (
            [id] => 333
            [name] => Watches
            [pluralName] => Watches
            [shortName] => Watches
        )

    [16] => Array
        (
            [id] => 111
            [name] => Bar
            [pluralName] => Bars
            [shortName] => Bar
        )

)

如果我有这样的语法:

$categorySet = $dbh->prepare("SELECT c.*,ci.*,b.business_id,b.idbusiness FROM
categories c 
JOIN categories_items ci ON ci.idcategory = c.idcategory
JOIN businesses b ON b.idbusiness = ci.id_items
WHERE c.id = :id OR c.name LIKE :name");
$categorySet -> bindParam(:name, $array['id']);
$categorySet -> bindParam(:name, '%'.$array['name'].'%');
$categorySet -> execute();

我想通过MySQL进行搜索,但希望从数组中获取手表或条形图的输出。

有人可以帮助我吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

要检查条件,您始终需要WHERE子句,因此您必须使用它。

当数组为IN形式时,第二个array(1,2,3,4,5);子句允许使用数组。

示例

SELECT
 *
FROM table_name 
WHERE
  fields IN (array(1,2,3,4,5));

更多信息

$id_sql = array();
$name_sql = array();

foreach($conditionArray as $arry)
{
       $name_sql[] = $arry['name'];
       $id_sql[]    = $arry['id'];
}

$ids    = implode(',',$id_sql);
$names  = implode(',',$name_sql);

SELECT * FROM table WHERE id IN ($ids) AND name IN ($names)

如果可以,请为名称和ID制作单独的数组,这样您就不需要for-each只使用implode并将其发送到MySQL语句中。

答案 1 :(得分:-1)

<?php

$arr_queries = array ('values','values','values')
$arr_results = array();

foreach($arr as $values)
{
  $sql = //do sql query here using $values,
  if(mysql_num_rows($sql) != 0)
  {
     while($row = mysql_fetch_array($sql))
     {
         $temp = array();
         $temp[] = $row[0]// get first column value, add other column value on $temp array
     } 
  }

  $arr_results[] = $temp;
}

?>