选择php mysql中的位置,如果where等于数组索引

时间:2013-01-27 06:07:08

标签: php mysql arrays

嘿伙计们我试图在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,所以请原谅我们。提前谢谢

2 个答案:

答案 0 :(得分:4)

应使用布尔关键字WHEREAND加入多个OR条件。您不会发出多个WHERE子句。

另外,请阅读有关MySQL扩展程序的内容 - https://stackoverflow.com/a/12860046/283366

答案 1 :(得分: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

解释

MySQL中不接受使用上述多个WHERE子句。尝试使用WHERE或使用AND替换第二个OR,具体取决于您的要求。我使用了AND