2017-11-19 4 views
0

申し訳ありませんが、これは重複した質問かもしれませんが、私は必然的にプロジェクトの提出に助けが必要です。PHPのサブクエリ

私はデータベースカーパークを持っています。ここでは、2つのテーブル内にcarpark_availabilityとhistoryがあります。

私のコードから、carpark_availabilityテーブルから "development"フィールドを取得することができます。 * h.development = c.developmentのところから*を選択したい場合は、どのようにクエリを構造化するかについて質問したいと思います。

下記に示すように私のコードです:

<?php 
session_start(); 
    $con = new mysqli('localhost','root','','carpark_project'); 
    $dev = $_SESSION["development"]; 
    echo "Development: "; 
    echo $dev; 



    $sql = "select * from carpark_availability where 
      carpark_availability.Development IN (select history.development 
      from history where 
      history.Development = '$dev')"; 
    //$sql = "select * from carpark_availability where development = '$dev'"; 
    //$sql = "select * from carpark_availability where (select Development 
    //from history where Development= '$dev'"; 

    $result = $con->query($sql); 


    while($row = $result ->fetch_assoc()) 
    { 

     echo "Development: "; 
     echo $row["Development"]. "</br>"; 
     echo $row["Area"]."</br>"; 
     echo $row["weekday1"]."</br>"; 
    } 

?> 
+2

SQLステートメントの角括弧を参照/カウントしてください。 –

+1

mysqlジョインに関する詳細は、https://www.w3schoolsを参照してください。 .com/sql/sql_join.asp –

+0

こんにちは、私は1つの括弧が欠けているのを見ました。しかし、それはまだ問題を解決しません。それは私にこのエラーを与えました "致命的なエラー:キャッチされていないエラー:booleanでメンバ関数fetch_assoc()を呼び出す" – DesperatelyNeedHelp

答えて

1

Aサブクエリよりも目の方がはるかに簡単です参加します。

SELECT c.* 
FROM carpark_availability c 
INNER JOIN history 
USING (development) 
GROUP BY development; 

私はあなたのクエリがそう$resultfalseブールに設定されているいかなる結果が返されませんので、あなたがエラーを取得している推測しています。コードに何もないので、それをチェックしてfetch_assoc()を呼び出してください。