我想用下拉菜单显示我数据库中的一些数据。数据(图片、链接、标题、数字)将分别显示在一个小的 div 中。
我删除了重复的数据并制作了下拉列表。下拉列表也有我想要的值。但是我的代码似乎不起作用。我想问题是我无法将我的数据的“echo ”与我的其余代码连接起来,所以我可以使我的代码工作。
这是我的代码:
$query="SELECT DISTINCT * FROM products GROUP BY category";
$result = mysql_query($query);
echo "<select name=\"category\">";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['category'] . "'>" . $row['category'] ."</option>";
}
echo "</select>" . "</br>";
这是我的其余代码:
mysql_select_db("myapp",$con);
$result = mysql_query("SELECT * FROM products WHERE category = " . $row['category'], $con);
while($row = mysql_fetch_array($result))
{
$mycategory = $row['category'];
$myimage = '<img src="'.$row['image'].'" />';
echo "<div id='appear'>" . $myimage . '<br />' . $row['title'] . "<br />"
. "<p style='color:red;' >" . "price: " . $row['price'] . "€" . "</p>"
. '<a href="image.php?id='.$row['id'].'">'
. "details" . "<a>" . "</div>" ;
}
mysql_close($con);
假设数据库已连接。另外,我必须只使用 php 和 mysql。
最佳答案
我假设您想让用户在第一页上选择类别,然后向他显示适合他选择的所有数据。如果您想在同一页面中实时显示数据,当用户选择一个新类别时,一切都会变得有点复杂。
但是让我们坚持简单的版本。到目前为止,您的代码没有提供的是调用下一个 php 传输类别 id 的导航。您需要在 html-form 元素中构建第一个 php 代码,其中包含第二个 php 文件作为操作目标。例如:
<form action='part2.php' method='POST'>
<?php
/* ... your first code snippet */
?>
<input type='submit' value='Display category' />
</form>
当用户点击“显示类别”按钮时,您的第二个脚本将被调用,您可以通过全局变量 $_POST['category'] 访问所选类别字符串。
但是要小心!在实际情况下,不要简单地将每个 $_POST 或 $_GET 收到的数据发送到数据库,它可能会被潜在的攻击者简单地操纵。 Google Cross-Site-Scripting,如果你对这个主题感兴趣,但由于这是一个学校项目,我怀疑它对你没有任何重要性,只是以后不要在线托管它!
但是回到你的问题。你的第二个代码应该在你简单地替换之后工作
$result = mysql_query("SELECT * FROM products WHERE category=".$row['category']."",$con);
与
$result = mysql_query("SELECT * FROM products WHERE category=".$_POST['category']."",$con);
在你发布的第二个代码片段中,你的回显语句中有一个小错误,由于 stackoverflow 代码突出显示,很容易跟踪:你在开始标记前面缺少一个简单的引号 ('),并且您的结束标记缺少反斜杠(应该是 ,您肯定知道)。如果那是你原始代码中的错误,而不仅仅是复制粘贴错误,php 无论如何都应该提到这一点!
希望对您有所帮助,祝您项目顺利!
关于php-mysql : Making drop down list work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10807401/