2011-07-06 35 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 

ある次の2つのクエリを持っています出力は次のようになります。

 
Array (1) 
0 => Array (5) 
    productid => 1 
    qty => 1 
    materialid => 12 
    productname => Toothbrush 
    price => £3.00 

これは、基本的にコンテンツをバスケットページに出力することです。 2つのテーブルに結合がないため、クエリを結合できないことに注意してください。

ありがとうございます。

+2

[PHPのarray_merge](http://php.net/manual/en /function.array-merge.php)はこれを行うことができます –

+0

出力配列には2番目のクエリのデータは含まれていません。 – 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

こんにちはすべて 皆様のご回答に感謝したいと思います。私はダビデの解決策に行くことにしました。 ありがとう – Dino

1

データをキー配列として取得します。 2番目のクエリを実行し、データをキー配列として取得します。そして、両方の配列の組合を作る:

$data1 = query_data($sql1); 
$data2 = query_data($sql2); 
$result = array($data1 + $data2); 

はあなたに$data1$data2からすべての値を持つ単一の配列を含む1つの配列である結果が得られます。 $data2の重複キーは、$data1のキーを上書きしません。 Array Operators in the PHP Manualを参照してください。

同様の機能は、array_merge()であり、2つのうち1つのアレイも同様に作成します。

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); 
関連する問題