2017-11-26 18 views
0

私はSQLでかなり初心者ですが、これについてはかなり確信していますが、これは動作すると思われますが、そうではありません! :-)スクリプトはとても簡単ですが、まずそれを記述する必要があります。SQL - 条件付きWHERE

教師データ(wp_user)と生徒データ(wp_results)を持つテーブルが1つあります。

これらの2つのテーブルには、1つの識別子があります。私がしようとしていることは簡単な仕事です - 先生に同じ学校IDを持つすべての生徒に表示してください。

   $teacher = wp_get_current_user();  
     global $wpdb; 

     $get_student = "SELECT 
     wp_results.WORLDPLACE,wp_results.EUPLACE,wp_results.CZPLACE 
     FROM wp_results 
     WHERE wp_results.SCHOOLID = $teacher->schoolid"; 


     $results_of_teachers_students = $wpdb->get_results($get_student); 
     echo $results_of_teachers_students; 

     foreach ($results_of_teachers_students as $value){ 
     echo '<tr><td>'.$value->WORLDPLACE.'</td>'; 
     echo '<tr><td>'.$value->EUPLACE.'</td>'; 
     echo '<tr><td>'.$value->CZPLACE.'</td>'; 
     } 

これらの2行のコードは、教師のスクールIDを取得して表示します。

$teacher = wp_get_current_user(); 
echo $teacher->schoolid; 

これは言う: "wp_results" というテーブルからWORLDPLACE、EUPLACEとCZPLACEを選択しても教師のschoold idは(このIDを変数として格納されている)wp_resultsからschoolidに等しい場合にのみ。

global $wpdb; 
    $get_student = ("SELECT 
    wp_results.WORLDPLACE,wp_results.EUPLACE,wp_results.CZPLACE FROM 
    wp_results WHERE wp_results.SCHOOLID = $teacher->schoolid"); 

残りのコードはかなり明確です。すべてのデータを変数に格納し、テーブルとして出力します。

$results_of_teachers_students = $wpdb->get_results($get_student); 
     foreach ($results_of_teachers_students as $value){ 
     echo '<tr><td>'.$value->WORLDPLACE.'</td>'; 
     echo '<tr><td>'.$value->EUPLACE.'</td>'; 
     echo '<tr><td>'.$value->CZPLACE.'</td>'; 

しかし、結果は得られません。私が何をしていないか見ていますか? wp_resultsテーブルの

表現:-)あなたの助けのために事前にありがとうございます:-):wp_usersテーブルの

SCHOOLID WORLDPLACE EUPLACE CZPLACE FIRSTNAME LASTNAME EMAIL 

表現:

ID user_login user_pass user_nicename user_email user_url user_registered user_activation_key user_status display_name 

あなたが見ることができるように、そこにWP_usersテーブルで「SCHOOLID」列はありません。この学校IDはwp_usermetaにありますが、変数として呼び出すことができるので気にします:

$teacher = wp_get_current_user(); 
     echo $teacher->schoolid; 

ご協力いただきありがとうございます。

+0

'ますecho $ get_student'を返しますか? – panther

+0

それは文字列として全体のクエリを返します:O –

+0

私は知っているはずです。期待どおりの変数/値はありますか? mysqli_errorはどうですか? 'wp_results'テーブル構造体とは何ですか? – panther

答えて

0

問題はSQL内のPHP変数にあります。これは正しいコードです:

$teacher = wp_get_current_user();  
     global $wpdb; 

     $get_student = "SELECT 
     wp_results.WORLDPLACE,wp_results.EUPLACE,wp_results.CZPLACE 
     FROM wp_results WHERE wp_results.SCHOOLID = '$teacher->schoolid'"; 


     $results_of_teachers_students = $wpdb->get_results($get_student); 
      print_r($results_of_teachers_students); 
     foreach ($results_of_teachers_students as $value){ 
     echo '<tr><td>'.$value->WORLDPLACE.'</td><td>'.$value->EUPLACE.'</td><td>'.$value->CZPLACE.'</td>'; 

     } 

PHPの変数は '' にする必要があります:D笑、そんなに時間...