我查看了其他几个关于如何在 WHERE 子句中使用数组的条目,但我找不到适合我的解决方案。我想要做的是创建一个基于包含 $_SESSION 变量的记录集的动态值的下拉菜单。
我想要它做的是在下拉菜单中列出特定教师能够教授的可能课程(因此该列表取决于登录系统的教师)。所有需要的会话变量本身都可以正常工作,只要我在查询中输入的会话变量是单个结果字符串,就没有任何问题。但是一旦我在我的变量中遇到一个数组,这就是我出错的地方。
我在其他帖子上读到,为了在 WHERE 子句中使用数组,我必须创建一个函数来将数组转换为字符串,如下所示:
$subjectareajoin = implode(',', $_SESSION['SubjectArea']);
Recordset 的查询如下:
$query_classlist = "SELECT DISTINCT Class FROM $table_name
WHERE SubjectArea IN ('$subjectareajoin') AND CentreNo LIKE '".$_SESSION['CentreNo']."'
ORDER BY Class ASC";
$classlist = mysql_query($query_classlist) or die(mysql_error());
$row_classlist = mysql_fetch_assoc($classlist);
$totalRows_classlist = mysql_num_rows($classlist)
但它一直告诉我数组到字符串的转换存在错误:
Notice: Array to string conversion in path\addteachertest.php on line 28
这是创建主题区域数组的初始查询:
$query_subjectarea = mysql_query("SELECT DISTINCT SubjectArea FROM $table_name
WHERE Initials = '".$_SESSION['Initials']."'
AND staff LIKE '%".$_SESSION['Surname']."'") or die(mysql_error());
$query_subjectarea_array = array();
while($row_query_subjectarea = mysql_fetch_array($query_subjectarea))
$query_subjectarea_array[] = $row_query_subjectarea;
这是 var_dump($query_subjectarea_array):
array(1) { [0]=> array(2) { [0]=> string(15) "Expressive Arts" ["SubjectArea"]=> string(15) "Expressive
Arts" } }
如果有人能告诉我我的方法有什么问题,那就太好了。提前谢谢了!