我一直试图搜索这个,但我一直在寻找问题的解决方案“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进行搜索,但希望从数组中获取手表或条形图的输出。
有人可以帮助我吗?
谢谢!
答案 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;
}
?>