0

やあみんな私はphpで何かをクエリしようとしていますが、WHEREは配列からのインデックスですこれは私がしたことです

    $data=array();
                    while ($row = mysql_fetch_array($result))
                                {
                                    $item = array(
                                       'sec_id'=>$row['section_id'],
                                       'sec_name'=>$row['section_name'],
                                       'sec_dept'=>$row['section_department'],
                                       'sec_lvl'=>$row['section_level'],
                                      'advisory_id'=>$row['advisory_id'],
                                      'first_name'=>$row['f_firstname'],
                                      'last_name'=>$row['f_lastname'],
                                      'middle_name'=>$row['f_middlename'],
                                      'advisor_id'=>$row['faculty_id'],
                                    );


                    $get_subjects = "SELECT subject_name
                                        FROM subjects  
                                        WHERE level = '".$row['section_level']."' ";


                        $result_get_subjects =mysql_query($get_subjects)or die(mysql_error());

                        $subjects_count = mysql_num_rows($result_get_subjects);


                    $check_archive_subjects = " SELECT b.subject_name 
                                                FROM registrar_grade_archive a
                                                LEFT JOIN subjects b ON(a.subject_id=b.subject_id)
                                                LEFT JOIN section c ON(a.section_id = c.section_id)                                                 
                                                WHERE a.advisor_faculty_id ='".$row['faculty_id']."'
                                                WHERE a.section_id ='".$row['section_id']."'

                                                GROUP BY b.subject_name ASC
                                                 " ;

                     $query_checking =mysql_query($check_archive_subjects)or die(mysql_error());

                    $subjects_count_sent = mysql_num_rows($query_checking);

しかし残念ながら、$check_archive_subjectsで次のようなエラーが発生しました。

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE a.section_id ='24'

mysqlのwhere句に配列インデックスを配置する他の方法はありますか?このプロジェクトが終了した後、mysqlは非推奨になり、mysqliに切り替えられることはわかっているので、ご容赦ください。前もって感謝します

4

2 に答える 2

4

複数WHEREの条件は、ブールキーワードANDまたはを使用して結合する必要がありますORWHERE複数の句を発行することはありません。

また、MySQL拡張機能についてはこちらをお読みください-https://stackoverflow.com/a/12860046/283366

于 2013-01-27T06:08:12.700 に答える
0

以下のクエリを試してください

SELECT b.subject_name
FROM registrar_grade_archive a
LEFT JOIN subjects b ON(a.subject_id=b.subject_id)
LEFT JOIN section c ON(a.section_id = c.section_id)
WHERE a.advisor_faculty_id ='".$row['faculty_id']."' AND a.section_id ='".$row['section_id']."'
GROUP BY b.subject_name ASC

説明

上記のような複数のWHERE句の使用は、MySQLでは受け入れられません。要件に応じてWHEREANDまたはを使用して2番目を交換してみてください。OR利用したAND

于 2013-01-27T06:16:21.917 に答える