我想通过下拉菜单显示数据库中的一些数据。数据(图片,链接,标题,数字)将分别显示为一个小div。
我删除了重复数据,我制作了下拉列表。下拉列表也包含我想要的值。但我的代码似乎不起作用。我问的问题是我无法将我的数据的“回声”与我的其余代码连接起来,所以我可以使我的代码工作。
这是我的代码:
$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。
答案 0 :(得分:1)
&LT;
?php
$query="SELECT DISTINCT * FROM products GROUP BY category";
$result = mysql_query($query);
echo "<select name=\"category\" onchange=\"form.submit()\">";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['category'] . "'>" . $row['category']
."</option>";
}
echo "</select>" . "</br>";
?>
它会帮助您更改内容,因为下拉列表的值已更改。
并且对于div使用以下代码。
<?php
if(isset($_POST['category']) && !empty($_POST['category']))
{
//rest of your div codes lie here
}
?>
答案 1 :(得分:1)
我假设您想让用户在第一页上选择类别,然后向他显示符合他选择的所有数据。如果您想在同一页面中显示数据,那么当用户选择一个新类别时,一切都会变得更加复杂。
但是我们坚持使用简易版。你编码的代码到目前为止还没有提供一个导航,调用下一个php传输category-id。您需要在html-form元素中构建第一个php代码,其中包含第二个php文件作为操作目标。例如:
<form action='part2.php' method='POST'>
<?php
/* ... your first code snippet */
?>
<input type='submit' value='Display category' />
</form>
当用户点击“显示类别”按钮时,将调用您的第二个脚本,您可以访问全局var $ _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);
在您发布的第二个代码中,您的echo语句中存在一个小错误,由于stackoverflow代码突出显示,因此很容易跟踪:您在开头标签前面缺少一个简单的引号('),并且你的结束标签缺少反斜杠(应该是,你肯定知道的)。如果你原来的代码错了,而不仅仅是复制粘贴错误,那么php无论如何都要提这个!
希望它有所帮助,祝你的项目好运!