我搜索了档案,this question似乎最接近我自己。但是,遗憾的是,我无法从中获得解决方案。 我有一个表单,用户可以完成从大型测验数据库中创建问题列表。问题按科目分类,按难度分级(1,2,3,4)。用户可以通过选择主题和难度来创建问题列表。它工作正常。但是我们在某些科目上没有很多一年级的问题,所以想要将1和2组合成一个“简单”的成绩。表单的选项列表工作正常如下,但我希望第二个选项搜索值1和2而不仅仅是2。 这是相关的表单代码(它不包括所有主题细节,只包括难度选择):
<form action="" method="post" id="quizbuilder">
<table width="400" border="0">
<tr>
<td>number of questions</td>
<td><input name="quizSize" type="number" value="20" size="2" maxlength="2" min="1" max="50" /></td>
<td> </td>
</tr>
<tr>
<td>difficulty</td>
<td><select name="grade">
<option value="%" selected="selected">any</option>
<option value="2">easy</option>
<option value="3">medium</option>
<option value="4">difficult</option>
</select>
<td> </td>
</tr>
<tr>
查询如下所示:
mysql_select_db($database_qbquery, $qbquery);
$query_userquiz = sprintf("SELECT * FROM questions WHERE (grade LIKE %s) AND (topic1 LIKE %s OR topic2 LIKE %s OR topic3 LIKE %s) ORDER BY RAND() LIMIT %s", GetSQLValueString($userGrade_userquiz, "text"),GetSQLValueString($userTopic_userquiz, "text"),GetSQLValueString($userTopic_userquiz, "text"),GetSQLValueString($userTopic_userquiz, "text"),GetSQLValueString($userQuizSize_userquiz, "int"));
$userquiz = mysql_query($query_userquiz, $qbquery) or die(mysql_error());
$row_userquiz = mysql_fetch_assoc($userquiz);
$totalRows_userquiz = mysql_num_rows($userquiz);
当然,我喜欢做的事情就是:
<option value="1,2">easy</option>
但我知道这不会起作用,因为它被读作字符串而不是值。 任何帮助都会非常感激,我的脑袋现在正在旋转,看起来它应该很简单,但它不适合我。
答案 0 :(得分:0)
正如我在评论中发布的那样,您可以在使用之前轻松爆炸该值:
$value = $_POST['name'];
$name = explode( ',', $value );
现在你有一个数组,有一个或多个值,只需根据需要使用它们。但是有点不清楚,你期待的最终代码是什么。
PS:在将它们提供给您查询之前,请记得做一些额外的SQL注入检查。