0

继最近的一篇文章之后。

我正在创建一个查询 SQL 数据库的搜索功能。该数据库由不同类型的肉类包装组成。我创建了 HTML 和 PHP 代码,它将仅使用一个表单和提交按钮来搜索数据库并显示结果。但是我现在想创建一个有多个表单(包括三个下拉表单)的搜索框,当用户输入尺寸时,单击下拉列表并输入 id 代码,他们可以使用一个提交按钮提交,然后将被引用由匹配所有三个组合的结果组成的页面。

谁能给我一些关于如何解决这个问题的见解?我尝试创建两个表单,它们提交到同一个 PHP 页面以获得结果,但一个似乎覆盖了另一个。

这是我目前的 HTML 和 PHP 代码:

    <body>

    <form action="form2.php" method="post"> 
              Search: <input type="text" name="term" /><br />
    <input type="submit" value="Submit" /> 
    </form> 


</body>

和 PHP 代码:

   <body>


   <?php
    $con = mysql_connect ("localhost", "root", "");
    mysql_select_db ("delyn_db", $con);

  if (!$con)
    { 
    die ("Could not connect: " . mysql_error());
    }


$term = mysql_real_escape_string($_REQUEST['term']);    

     $sql = "SELECT * FROM delyn WHERE toolcode LIKE '%".$term."%' OR trayheight LIKE
     '%".$term."%' OR delyncode LIKE '%".$term."%' OR description LIKE '%".$term."%' 
      OR trayshape LIKE '%".$term."%' OR traydepth LIKE '%".$term."%' OR traywidth
     LIKE '%".$term."%'";
     $r_query = mysql_query($sql);

if(!$sql)
    {
        echo "could not find";
    }

       while ($row = mysql_fetch_array($r_query)){ 
       echo 'ID: ' .$row['ID']; 
       echo '<br /> Delyn code: ' .$row['delyncode']; 
       echo '<br /> Tool Code: '.$row['toolcode'];
       echo '<br /> Description: '.$row['description']; 
       echo '<br /> Tray range '.$row['trayrange']; 
       echo '<br /> Tray type: '.$row['traytype'];
       echo '<br /> Tray size: '.$row['traysize']; 
       echo '<br /> Tray height: '.$row['trayheight']; 
       echo '<br /> Tray width: '.$row['traywidth']; 
       echo '<br /> Tray depth: '.$row['traydepth'];
       echo '<br /> Tray shape: '.$row['trayshape'];  
       echo '<br /> imagename: '.$row['imagename'];
       echo '<br /> Tray live: '.$row['traylive'] . ' <br /><br />';  
    }


?>

    </body>

提前致谢 :)

编辑过的php:

  <body>

    <?php
$con = mysql_connect ("localhost", "root", "");
mysql_select_db ("delyn_db", $con);

if (!$con)
    { 
    die ("Could not connect: " . mysql_error());
    }

if(isset($_POST['formSubmit']) )
{
    $varType = $_POST['traytype'];
}

$term = mysql_real_escape_string($_POST['term']);    
$sql = "SELECT * FROM delyn WHERE traytype LIKE '%".$varType."%'";


$r_query = mysql_query($sql);


while ($row = mysql_fetch_array($r_query)){ 
echo 'ID: ' .$row['ID']; 
echo '<br /> Delyn code: ' .$row['delyncode']; 
echo '<br /> Tool Code: '.$row['toolcode'];
echo '<br /> Description: '.$row['description']; 
echo '<br /> Tray range '.$row['trayrange']; 
echo '<br /> Tray type: '.$row['traytype'];
echo '<br /> Tray size: '.$row['traysize']; 
echo '<br /> Tray height: '.$row['trayheight']; 
echo '<br /> Tray width: '.$row['traywidth']; 
echo '<br /> Tray depth: '.$row['traydepth'];
echo '<br /> Tray shape: '.$row['trayshape'];  
echo '<br /> imagename: '.$row['imagename'];
echo '<br /> Tray live: '.$row['traylive'] . ' <br /><br />';  
    }


?>
  </body>
4

1 回答 1

2

为什么不在同一个表单上使用多个输入?像这样的东西:

<form action="form2.php" method="post"> 
          Search: <input type="text" name="term" /><br />
          Sizes: <input type="text" name="sizes" /><br />
          Select an option: <select name="dropdownselection" ><option...</option></select><br />
          ID Code: <input type="text" name="id" /><br />
<input type="submit" value="Submit" /> 
</form>

然后,您可以像访问为搜索词输入的值一样访问这些值。注意:你应该为你的标签使用标签标签,并使用一个列表来布局你的表单。

编辑:选项标签如下所示:

<option value="what is posted to the script">What is seen by the user</option>

编辑:请删除 $vartype 变量赋值周围的条件

编辑:在您的 sql 查询中使用 and,not or,因为您需要两个条件都为真。如果您还有其他问题,请打开一个新问题,因为这个问题有些混乱。最后,如果您觉得这个答案对您有所帮助,请考虑接受它。

于 2012-10-08T10:04:35.380 回答