0

我有一个从数据库表 A 中填充的下拉列表。当用户选择一个选项并单击“开始”时,该类别的相关数据将显示在另一个数据库表 B 的页面上。就像这样,当用户从下拉列表中选择“全部”选项时列表并单击“Go”,它应该显示 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>

这是我运行页面的链接:

4

1 回答 1

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

而 ($row = mysql_fetch_assoc($sql_search))

c) 这么多的打开和关闭 php 标签!为什么不使用回声?清晰对于调试很重要(不仅如此)

于 2013-04-09T12:29:58.533 回答