-2

このステートメントが機能しない理由がわかりません

$sql2 = mysql_query("
  SELECT myChurches.id AS id, myChurches.church_name AS church_name 
  FROM myChurches 
  INNER JOIN church_staff 
  ON church_staff.church_id=myChurches.id
  WHERE church_staff.mem_id='$logOptions_id' 
  ORDER BY myChurches.church_name 
  ASC
")

if(mysql_num_rows($sql2) > 0){
    while($row2 = mysql_fetch_array($sql)){
      $church_id = $row2['id']; 
      $church_name = $row2['church_name'];
        $options .= '<option value="'.$church_id.'">'.$church_name.'</option>';
    }
}

基本的に、あるテーブルから教会のスタッフである人を見つけ、「myChurches」テーブルからその教会の「名前」を取得する必要があります。うまくいけば、それは理にかなっています。前もって感謝します

編集:

テーブル 1 には一意の ID と Church_name があります

テーブル 2 には一意の ID、church_id、および mem_id があります

4

2 に答える 2

0

問題はフェッチ配列にありました...変数は実際のクエリ変数とは異なりました。助けてくれてありがとう

于 2012-06-25T16:58:55.460 に答える
0
  SELECT id, church_name 
  FROM myChurches 
  WHERE id = (SELECT church_id FROM church_staff WHERE mem_id = '$logOptions_id')

編集:これは、あなたが言ったように mem_id一意であると想定していますが、何か間違ったことをしていない限り (外部キーであるため)、 church_id は一意であってはなりません。

于 2012-06-24T21:54:05.507 に答える