从下拉列表中选择'ALL'option时显示数据库中的数据

时间:2013-04-09 12:19:05

标签: php mysql

我有一个从数据库表A填充的下拉列表。当用户选择一个选项并单击“go”时,该类别的相关数据将显示在另一个数据库表的页面上。例如,当用户选择“ALL”时从下拉列表中选择并单击“开始”,它应显示B表中的所有数据。

页面将始终显示有关第一个选项的数据,页面加载完全加载。

现在,通过选择列表类别从数据库表B中获取成功完成除了'ALL'选项。即当我选择“所有”类别时,我遇到了问题。我无法一次显示表B中的所有数据。请帮助我,忽略如果我写错了英语。这是我的代码:

<div align="right"><label>Category</label>

<select name="category">

<?php

$sql = "SELECT id, art_name FROM category;";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
?>
<option value="<?= $row['id']; ?>"<?=($_POST['category']==$row['id'] ? '   selected="selected"' : '')?>><?= $row['art_name']; ?></option>

<?php } ?>
</select>
 <input name="go" type="submit" value="Go" /></div>
 <div align="center" class="showimage">
 <ul class="display">

<?php
$id = $_POST['category'];
$search = mysql_query("SELECT id, categoryid, path FROM list WHERE categoryid = $id");
 $sql = mysql_query("SELECT autodisplay FROM list WHERE categoryid = 2");
$sql_search = mysql_query("SELECT path FROM list");
if (isset($_POST['go'])) {
while ($row = mysql_fetch_assoc($search)) {
?>

<li><a href="<?= $row['path']; ?>" class="highslide" onclick="return hs.expand(this)"><img src="<?= $row['path']; ?>" border="0"></a>
</li>
<?php }
while ($row = mysql_fetch_assoc($sql_search)) {
?>

<li><a href="<?= $row['path']; ?>" class="highslide" onClick="return hs.expand(this)"><img src="<?= $row['path']; ?>" border="0"></a>
 </li>
<?php }
 }

 else {
 while ($row = mysql_fetch_assoc($sql)) {
 ?> 
 <li><a href="<?= $row['autodisplay']; ?>" class="highslide" onclick="return hs.expand(this)"><img src="<?= $row['autodisplay']; ?>" border="0"></a>

 </li>
 <?php }

 }
 ?>

</ul>
</div>

And this is the link of my running page:

1 个答案:

答案 0 :(得分:0)

  • a)首选mysqli或PDO。 mysql_query已折旧。
  • b)你只需要一个循环
  

while($ row = mysql_fetch_assoc($ sql_search))

c)这么多打开和关闭的php标签!你为什么不用echo?清晰度对于调试(而不仅仅是)非常重要