2016-07-21 10 views
0

私はデータベースから結果を得るためにクエリを実行しています。結果は配列に保存されます。私はどのように配列からそれらの結果を使用して、単一のクエリでデータベースのさらなる結果を得ることができるか知りたい。それとも、複数のクエリを使用する必要がありますか?データベースから2つの異なるレコードを使用するには?

$query2="SELECT officeName FROM office 
WHERE parentOfficeID='$parent'"; 

$result2=mysqli_query($connect,$query2); 
if(mysqli_num_rows($result2) != 0) 
{ 
$results= array(); 
while ($row2 = mysqli_fetch_assoc($result2)) 
     { 
      $results[]=$row2['officeName']; 
     } 
} 

$ results配列は結果を保存します。私はofficeName値を個別に使用したいと思います。私は単一のクエリを使用する方法はありますか?それとも、私はそれぞれの価値を処理しなければなりませんか? @Nyranithに追加する

+1

あなたは内部でこれを行うことができますお読みくださいお読みください、のようなもの:INNER xとオフィスからSELECT x.officeName Y ASオフィスのJOIN ON x.officeName = y.Something WHERE x.parentOfficeId = $ variable; – Nyranith

+1

変数をパラメータ化する必要があります。セキュリティの問題。 – VikingBlooded

+0

サブクエリを使用することができます。http://www.tutorialspoint.com/sql/sql-sub-queries.htm – user3091574

答えて

0

こんにちはで何かをその上にofficeName。この1つを使用できます

<?php 
$db = new mysqli('localhost','root','','databasename'); 
$result = mysqli_query($db,"SELECT officeName FROM office WHERE parentOfficeID='$parent'") or die(mysqli_error($db)); 
$officeName = array(); 
while($row = mysqli_fetch_assoc($result)){   
$officeName[] = $row['officeName'];//store your office name in an array 
}   
$officeName= join("', '", $officeName);//The join() function returns a string from the elements of an array. It is an alias of the implode() function. 
$sql = "SELECT * FROM office WHERE officeName IN ('$officeName')";// query with IN condition 
$result1 = mysqli_query($db,$sql) or die(mysqli_error($db)); 
while($row1 = mysqli_fetch_assoc($result1)){ 
echo "<pre>";print_r($row1); 
} 

join()詳細については、こちらをご覧ください。テーブル自体に参加mysqliIN conditionためhttp://www.w3schools.com/php/func_string_join.asp

http://www.mysqltutorial.org/sql-in.aspx

0

、また、あなたのwhile文をスワップアウトとをループにあなたを必要とせずに連想配列としてあなたの値を返すと、アレイを構築します

mysqli_fetch_all($result2, MYSQLI_ASSOC);

を使用することができますあなた自身。

私はmysqliを使用して以来、本当に長い時間を過ごしました。

はここでプロセス自体について行くには良い方法だ: あなたは、テーブルがあるとします。オフィスやスタッフといくつかの理由のために、あなたはオフィス名(悪いジュジュ)= 1 $親でスタッフにオフィスを結合しています。ベースの他のいくつかの情報を取得したい私はまずあなたの質問を理解して、あなたが、その後、いくつかのofficeNameを取得し、配列に格納し、したい場合は

$query2="SELECT o.officeName, s.name 
FROM office AS o 
INNER JOIN staff AS s ON o.officeName = s.officeName 
WHERE o.parentOfficeID=?"; 

$stmt = $connect->prepare($query2); 
$query = $stmt->bindParam($parent); 
$exec = $stmt->execute(); 
$results2 = mysqli_fetch_all($exec, MYSQLI_ASSOC); 

今、あなたの結果の配列

foreach($results2 as $key => $value) { 
    //loop through your results an do another query with them. Just like you queried the database to get these results. 
} 
+0

私はそれが質問に答えるとは思わない。私は配列要素を使用して、データベースからさらなる結果を取得したいと考えています。 – Anonymous

+0

配列結果を使用して、任意の操作を行うことができます。私は例を追加します。 – VikingBlooded

関連する問題