0

给定一个 MYSQL 数据库,其中我有一个包含大量条目的表,其结构如下:

字符串 | 类型

字段“类型”在数据库中可以有 4 个值(a、b、c、d)。

我想使用复选框表单通过检查四个可能值之一从数据库中检索所有字符串。

到目前为止,我只有这段 PHP 代码:

<?
$objConnect = mysql_connect("localhost","root","****") or die("No DB to select.");
$objDB = mysql_select_db("exercises");
$strSQL = "SELECT * FROM entries WHERE type = '".$_POST["type"]."'";
$objQuery = mysql_query($strSQL);
?>

<?
$checkbox = array();

if (isset($_POST["type"])){
 $checked = $_POST["type"];

foreach ($checked as $value) {
    echo "$value"."</br>";
}
}
else{
    echo "Please select at least one type.";
    }
?>

问题是这段代码只返回类型值 a、b、c、d 而不是数据库中条目的字符串。

有人可以告诉我如何实际访问我的数据库条目并检索与表单中检查类型相对应的字符串值吗?谢谢!

PS:这是我尝试使用的表单的 HTML:

<html>
 <head>
  <title>select</title>
  <META http-equiv="Content-Type" content="text/html; charset=latin-1">
 </head>
 <body bgcolor="#F5FAE6">
<center>
<h2><p align="center">Make your test</p></h2>
</center>

<br><br>

<form action="output.php" method="POST">
&#10004;&nbsp;Select the <b>type(s) of exercise</b> you need:<br /><br />

<table border="1" cellpadding='4' cellspacing='4' style='border-collapse: collapse' bordercolor='#9999DD'>
<tr><td><input type="checkbox" name="type[]" value="abc"/> multiple choice</td></tr>
<tr><td><input type="checkbox" name="type[]" value="error"/> mistake correction</td></tr>
<tr><td><input type="checkbox" name="type[]" value="cloze"/> cloze</td></tr>
<tr><td><input type="checkbox" name="type[]" value="makeq"/> make a question</td></tr>
<tr><td><input type="checkbox" name="type[]" value="trans"/> translate (IT-->EN)</td></tr>
</table>

<p align="center">
<input type="submit" name= "get" value="get your entries!"/>
</p>

</form>

</body>
</html>
4

2 回答 2

0

我认为这应该这样做

    <php
      if (isset($_POST["type"]))
      {
        $objConnect = mysql_connect("localhost","root","****") or die("No DB found");
        $objDB = mysql_select_db("exercises");
        $strSQL = "SELECT * FROM entries WHERE type IN(";
         foreach($_POST['type'] as $t)
         {
            $strSQL .="'".$t."',";
         }
         $strSQL=rtrim($strSQL,",").")";
         $objQuery = mysql_query($strSQL);
         while ($row=mysql_fetch_array($objQuery)) 
         {
         echo $row['type']."<br>";
         }
        mysql_close($objConnect);
       }
    else{
        echo "Please select at least one type.";
       }
     ?>
于 2014-07-07T06:11:23.540 回答
0

问题是您正在回显类型而不是从 mysql 查询返回的结果..

您的代码应为

if (isset($_POST["type"])){
 while ($row = mysql_fetch_array($objQuery)) {
    echo $row['text']."<br />";  
}
else{
    echo "Please select at least one type.";
}
于 2013-07-21T07:36:40.390 回答