2016-04-18 6 views
1

したがって、SQL検索$search_courseの結果を使用して、次の文のWHERE LIKEの部分を$Search_Moduleの一部として使用しようとしています。新しいSQL文の検索キーワードとしてSQLクエリ結果を使用する

$Search_Moduleクエリが終了したら、正しくコーディングする必要があることがわかっているリストに結果が表示されます。

次のコードを試しましたが、検索で値が返されません。

これに関するお手伝いがあれば、事前に感謝します。

 $search_course = " 
    SELECT title, id, wyl, overview, module, course, careers 
    FROM course 
    LEFT JOIN cm 
    ON course.id=cm.course 
    WHERE id LIKE '%".$_POST['submitcourseselection']."%'"; 

    $result = $mysqli->query($search_course) or die($mysqli->error); 
    $display_course = $result->fetch_assoc(); 

    //Searches the module table in the DB for modules within the course 
    $Search_Module = " 
    SELECT id, title, level, credits 
    FROM module 
    WHERE id LIKE '".$search_course['module']."'"; 

    $M_Results = $mysqli->query($Search_Module) or die($mysqli->error); 


    $ModuleList = ''; 
    while ($MResults = $M_Results->fetch_assoc()) { 
     $ID = $MResults['id']; 
     $Title = $MResults['title']; 
     $Level = $MResults['level']; 
     $Credits = $MResults['credits']; 
     $ModuleList.='<div><h2>'.$Title.'</h2></div>'; 
    } 
+0

を?ここで実際にJOINを使用する必要があります。 –

+0

どのような形式でテーブル構造が必要です@MeesKluivers – bdg

+0

'LIKE'にする必要はありません' =? 'をどのように実装しますか? – bdg

答えて

1

2番目のクエリでLIKEを使用する必要はなく、すべて1つのクエリで実行できます。あなたのwhere句WHERE id LIKE '".$search_course['module']."'";

$search_course = " 
     SELECT id, title, level, credits 
     FROM module 
     WHERE id IN (SELECT module 
     FROM course 
     LEFT JOIN cm 
     ON course.id=cm.course 
     WHERE id LIKE '%".$_POST['submitcourseselection']."%'")"; 
+0

これは、私が探していた情報を取得しますが、私は最初のクエリだけでなく、ページに表示されている他の情報に関連している必要があります。これを含める方法はありますか? – bdg

0

、あなたは、SQL文の文字列$search_course、の配列の場所を参照しています。

私はあなたの結果配列$display_courseを参照するためのものだと思うので、これ試してください:あなたは、テーブル構造を追加することができ

$search_course = " 
SELECT title, id, wyl, overview, module, course, careers 
FROM course 
LEFT JOIN cm 
ON course.id=cm.course 
WHERE id LIKE '%".$_POST['submitcourseselection']."%'"; 

$result = $mysqli->query($search_course) or die($mysqli->error); 
$display_course = $result->fetch_assoc(); 

//Searches the module table in the DB for modules within the course 
$Search_Module = " 
SELECT id, title, level, credits 
FROM module 
WHERE id LIKE '".$display_course['module']."'"; 

$M_Results = $mysqli->query($Search_Module) or die($mysqli->error); 


$ModuleList = ''; 
while ($MResults = $M_Results->fetch_assoc()) { 
    $ID = $MResults['id']; 
    $Title = $MResults['title']; 
    $Level = $MResults['level']; 
    $Credits = $MResults['credits']; 
    $ModuleList.='<div><h2>'.$Title.'</h2></div>'; 
} 
+0

私もこれを試しましたが、私は後の結果を得ることができません。私はMojtabaの答えを第2のSQLクエリ '$ search_module'にエンコードする方法を解明しようとしていますが、どうすればよいかわかりません – bdg

関連する問題