创建查询mysql数据库的下拉菜单

时间:2013-03-01 14:51:07

标签: php mysql

让我更准确地解释一下我想要做什么。我正在查询一个数据库,其中一个表包含字段id,book,author,genre,email。

我有一个工作正常的插入页面,但我需要一个搜索页面,其中有4个搜索,下拉框显示每个字段的唯一条目 - 书籍,作者,流派,电子邮件。

我遇到过一个URL,我已经努力在数据库中显示条目但是当你点击一个条目时它就无处可去: http://www.phpsuperblog.com/php/html-form-drop-down-menu-with-data-from-mysql-datebase-as-options/

我希望我做的事情基本上是错误的。让它运作的最新尝试是: http://swapabook.hostei.com/search6.php

我之前尝试按照以下链接创建这些下拉菜单,以查询数据库中动态更改的内容: http://forums.devarticles.com/mysql-development-50/drop-down-menu-populated-from-a-mysql-database-1811.html

我希望我通过编辑来做正确的事情,但如果你想让我添加一个新条目,我也可以这样做。

我的HTML代码如下:

 <form action="namesearch2.php" method="post">
   Name of Book
   <SELECT NAME=name>
      <OPTION VALUE=0>Choose
   </SELECT>
   <input type="submit">
</form>

php如下:

<?php
 $con=mysqli_connect('mysql1x.000webhost.com','a4425533_swapabo','xxxx','a4425533_swapabo');

// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query($con,"'SELECT book FROM book'");

while($row = mysqli_fetch_array($result))
 {
  $bookselect=$row["book"];
  $options.="<OPTION VALUE=\"$bookselect\">".$bookselect.'</option>';
  }
?>

我之前认为你可以在一个字段中输入文字,它会查询数据库,但是我通过尝试填充这个下拉菜单而无法进一步复杂化。

http://swapabook.hostei.com/search2.html

3 个答案:

答案 0 :(得分:2)

我想补充一下user2035638所说的..

我检查了你的HTML ..并发现第一个条目没有关闭。

Name of Book
<SELECT NAME=name>
  <OPTION VALUE=0>Choose
    </SELECT>
<input type="submit">

您必须关闭第一个<OPTION>,以便您的代码看起来像这样:

Name of Book
<SELECT NAME=name>
  <OPTION VALUE=0>Choose</OPTION>
    </SELECT>
<input type="submit">

答案 1 :(得分:1)

试试这个;

<?php 
 $con=mysqli_connect('mysql1x.000webhost.com','a4425533_swapabo','xxxx','a4425533_swapabo');

// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$result = mysqli_query("SELECT book FROM book",$con);
?>
<form action="namesearch2.php" method="post">
   Name of Book
   <SELECT NAME=name>
      <OPTION VALUE=0>Choose
      <?php  
      while($row = mysqli_fetch_array($result))
     {
      $bookselect=$row["book"];
      echo "<OPTION VALUE=\"$bookselect\">".$bookselect.'</option>';
      }
     ?>


   </SELECT>
   <input type="submit">
</form>

答案 2 :(得分:-1)

您的代码中似乎有一个错误:

这一行:

$options.="<OPTION VALUE=\"$bookselect\">".$bookselect.'</option>';

更改为:

$options.="<OPTION VALUE=\"".$bookselect".\">".$bookselect.'</option>';