2011-07-06 69 views
1

我現在有以下數組,PHP/Mysql使用現有數組中的值創建一個新數組,幫助?

 
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 

這基本上是將內容輸出到購物籃頁面。請注意,查詢無法連接,因爲兩個表上沒有任何連接。

謝謝

+2

[PHP的array_merge(http://php.net/manual/en /function.array-merge.php)可以爲你做這個 –

+0

輸出數組不包含來自第二個查詢的數據,只包含來自第一個查詢的產品名稱和價格。 – Kwebble

回答

0

你也可以同時查詢兩個表:

select p.name as productname, m.name as materialname, p.price 
    from products p, materials m 
    where p.productid=1 and materialid=12 
+0

大家好 我想感謝你們所有人的迴應,所有的解決方案都有效。我決定採用David的解決方案。 謝謝 – Dino

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()它確實創建了兩個數組中的一個。

0

你從哪裏得到數據來填充初始數組?它是否總是有單個值(如果是這樣的話,你可以在單個查詢中使用笛卡爾連接來避免2次訪問數據庫)。爲什麼數據庫中沒有描述數據表之間的關係?

將數組中的值拼接到查詢中,無論是文字還是作爲邊界參數都很簡單。這裏有什麼問題?

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); 
相關問題