Php 如何使用select选项过滤MySQL查询,从而生成正确的产品
我正在开发一个基于数据库的CMS。 数据库的结构如下所示,其语言为荷兰语: id、artikelnummer_fabrikant、breedte、diepte、hoogte、extrainfo、afmeting、kleur、merk、serie、producttype、omschrijving、prijsfinal、levertijd 在下一段代码中,我从数据库中获取所有信息,并将其放入表中: 很抱歉,我没有使用<和>来创建标记,这个文本编辑器将它视为标记而不是文本,我不知道如何使这项工作正确,欢迎提供有关这方面的提示Php 如何使用select选项过滤MySQL查询,从而生成正确的产品,php,mysql,Php,Mysql,我正在开发一个基于数据库的CMS。 数据库的结构如下所示,其语言为荷兰语: id、artikelnummer_fabrikant、breedte、diepte、hoogte、extrainfo、afmeting、kleur、merk、serie、producttype、omschrijving、prijsfinal、levertijd 在下一段代码中,我从数据库中获取所有信息,并将其放入表中: 很抱歉,我没有使用来创建标记,这个文本编辑器将它视为标记而不是文本,我不知道如何使这项工作正确,欢迎提
function get_content() {
echo "<p>";
echo "<table>";
echo "<tr>";
echo "<td> id </td>";
echo "<td> artikelnummer frabrikant </td>"
and so on
echo "</tr>";
$sql = "SELECT * FROM products";
$res = mysql_query($sql) or die (mysql_error());
if (mysql_num_rows($res) != 0) :
while ($row = mysql_fetch_assoc($res)) :
echo "<tr>";
echo "<td> . $row['id'] . </td>";
echo "<td> . $row['artikelnummer_fabrikant'] . </td>";
and so on
echo "</tr>";
endwhile;
echo "</table>";
echo "</p>";
endif;
现在,我想用标签选择和选项在此基础上构建一个过滤器,这样当我选择brandmerk“windsor”选项时,它将显示所有品牌为“windsor”的产品,以及所有这些信息,如breedte、hoogte、diepte width、heigt、depth
我得到了一段代码,它在选项菜单中为我提供了所有品牌标识:
function category_filter() {
echo "Merk: ";
echo "<select onchange=window.location = this.value>;";
$sql = "SELECT merk FROM products";
$res = mysql_query($sql) or die (mysql_error());
if (mysql_num_rows($res) !=0 ) :
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) :
echo "<option> . $row['merk'] . </option>";
endwhile;
endif;
echo "</select>";
当然,数据库中的每一项都有一个
我接下来要做的是以某种方式组合这两个代码,当我在选项菜单brandmerk中选择brandmerk“Windsor”时,它将显示所有带有“Windsor”品牌的产品+该产品的所有其他信息
我苦苦挣扎了一个星期,试图让这一切发生,但我不能让它像我希望的那样继续下去
我如何才能做到这一点?好的,因此我通过编写以下代码了解了如何做到这一点:
echo "<form class='merk' action='index.php'>";
echo "<select name=merk>";
echo "<option value=''>Kies een merk</option>";
while ($row_merk = mysqli_fetch_array($merk_query_selected)) :
$filter = $row_merk['merk'];
if($filter == $merk) :
echo "<option value=" . urlencode($filter) . " selected='selected'>" . $filter . "</option>";
else :
echo "<option value=" . urlencode($filter) . ">" . $filter . "</option>";
endif;
endwhile;
echo "</select>";
echo "<input class='input-merk' type='submit' value='Filter op merk'>";
echo "</form><br />";
$('form').each(function() {
var that = $(this);
$.post(that.attr('action'), that.serialize());
});</script>
然后通过运行以下while循环获取内容:
while ($row_merk = mysqli_fetch_array($merk_query_all)) :
echo $table_row;
echo $table_cell, $row_merk['id'] . $table_div_end;
echo $table_cell, $row_merk['artikelnummer_fabrikant'] . $table_div_end;
echo $table_cell, $row_merk['breedte'] . $table_div_end;
echo $table_cell, $row_merk['diepte'] . $table_div_end;
echo $table_cell, $row_merk['hoogte'] . $table_div_end;
echo $table_cell, $row_merk['extrainfo'] . $table_div_end;
echo $table_cell, $row_merk['afmeting'] . $table_div_end;
echo $table_cell, $row_merk['kleur'] . $table_div_end;
echo $table_cell, $row_merk['merk'] . $table_div_end;
echo $table_cell, $row_merk['serie'] . $table_div_end;
echo $table_cell, $row_merk['producttype'] . $table_div_end;
echo $table_cell, $row_merk['omschrijving'] . $table_div_end;
echo $table_cell, $row_merk['prijsfinal'] . $table_div_end;
echo $table_cellEnd, $row_merk['levertijd'] . $table_div_end;
echo $table_row_end;
endwhile;
现在我想做的是让它动态,这样它可以同时过滤多个选择
竭尽所能,欢迎您的帮助
function get_content() {
echo "<p>";
echo "<table>";
echo "<tr>";
echo "<td> id </td>";
echo "<td> artikelnummer frabrikant </td>"
and so on
echo "</tr>";
$sql = "SELECT * FROM products";
$res = mysql_query($sql) or die (mysql_error());
if (mysql_num_rows($res) != 0) :
while ($row = mysql_fetch_assoc($res)) :
echo "<tr>";
echo "<td> . $row['id'] . </td>";
echo "<td> . $row['artikelnummer_fabrikant'] . </td>";
and so on
echo "</tr>";
endwhile;
echo "</table>";
echo "</p>";
endif;
[编辑]了解了它的工作原理,但它仍然不是动态的。但是这个问题已经解决了,我将在网上查看如何使其动态。请使用“格式代码”按钮。。。我会这么做,但你添加了这么多html标签。。。。它们不再得到维护。看到了吗?相反,了解,并使用or-将帮助您决定使用哪个。为什么要编写所有HTML标记而不使用?Hello@AarolamaBluenk我确实听说了这一点,我真蠢,竟然仍然使用mysql。我要用mysqli来代替。michi我不知道如何在编辑器中使用它们,当我使用它们时,它们实际上被用作代码而不是文本。neal您将如何使用mysqli构建代码?@michi编辑th标记