0

この構造の複雑なクエリがあります。

SELECT DRIVER, TRAVEL 
FROM TRAVELS
WHERE ...

次のようなものを返します。

DAVID PARIS
DAVID OSLO
JHON  AMSTERDAM
DAVID MADRID
MARCO BARCELONA
JHON  ROME

さて、私がやりたいことは、情報を 2 つの部分に分けて返すことです。つまり、まず第一に、以下を含むドライバーの配列:

DAVID
JHON
MARCO

そして、ユーザーの選択に応じて、そのドライバーの旅行を取得したいと考えています。DAVIDを選択すると、次の配列が返されます。

PARIS
OSLO
MADRID

2 つのクエリに簡単に分割できることはわかっていますが、前述したように、多くのレコードを持つデータベースに対する複雑なクエリであるため、この方法で時間を節約できます。

私はphpを使用しています...これをどのように行いますか?、連想配列を使用しますか? 例を教えてください。

説明が明確だったことを願っています。前もって感謝します。

4

4 に答える 4

1

どちらも最初に配列に保存します。

while ($row = $result->fetch_object()) { // for mysqli. for mysql use mysql_fetch_object($result)
   $travel[$row->DRIVER][] = $row->TRAVEL;
}

最初の場合:

$drivers = array_keys($travel);

2番目の場合:

$locations = $travel[$driver];
于 2013-04-18T15:34:44.947 に答える
0

私は自分で使ったことはありませんが、魔法のPDOでうまくいくようです。fetchAll

または、返された結果を手動でループして、必要な配列を埋めることができます

于 2013-04-18T15:33:18.550 に答える
0

配列を使用して結果をウォークスルーするだけです。名前がまだ配列にない場合は、名前をキーとして空の配列として追加します。その後、(name-)配列を取り、町を追加して、すべての名前の配列に戻します。連想配列があるよりも。

于 2013-04-18T15:33:35.173 に答える