我目前有以下数组,
Array (1) 0 => Array (5) productid => 1 qty => 1 materialid => 12
我有以下两个查询
select name as productname, price from products where productid=1
和
select name from materials where materialid=12
我需要链接这些查询,以便数组输出是这样或类似的:
Array (1) 0 => Array (5) productid => 1 qty => 1 materialid => 12 productname => Toothbrush price => £3.00
这基本上是将内容输出到一个篮子页面。请注意,由于两个表上没有任何连接,因此无法连接查询。
由于
答案 0 :(得分:1)
运行第一个查询,将数据作为键控数组。运行第二个查询,同时将数据作为键控数组。然后组合两个数组:
$data1 = query_data($sql1);
$data2 = query_data($sql2);
$result = array($data1 + $data2);
将为您提供一个结果,该结果是一个包含单个数组的数组,其中包含$data1
和$data2
的所有值。 $data2
中的重复密钥不会覆盖来自$data1
的密钥。请参阅Array Operators in the PHP Manual。
类似的函数是array_merge()
,它也会创建一个数组中的一个数组。
答案 1 :(得分:0)
您从哪里获取数据以填充初始数组?它是否始终具有单个值(如果是这样,您可以在单个查询中使用笛卡尔连接以避免两次访问数据库)。为什么数据表之间的关系没有在数据库中描述?
将数组中的值拼接到查询中,无论是文字还是绑定参数都是微不足道的。这是什么问题?
答案 2 :(得分:0)
您也可以同时查询这两个表:
select p.name as productname, m.name as materialname, p.price
from products p, materials m
where p.productid=1 and materialid=12
答案 3 :(得分:0)
您可以单独运行查询:
$res1 = mysql_query(Qry1);
$res2 = mysql_query(Qry2);
$data1 = mysql_fetch_array($res1);
$data2 = mysql_fetch_array($res2);
$res = array_merge_recursive($data1, $data2);