Phi*_*hil 2 html php sql-order-by drop-down-menu
我坚持这一点,我整个星期都在通过PHP的速成课程制作一个假的亚马逊像网站!我想使用下拉菜单订购我的餐桌,但无法弄清楚如何!我知道SQL很容易,但我尝试这样做的方法如下:
例如,设置变量
$query = "SELECT bookname, bookauthor, bookpub, bookisbn
FROM booktable
ORDER BY bookname ASC";
$query2 = "SELECT bookname, bookauthor, bookpub, bookisbn
FROM booktable
ORDER BY bookauthor ASC";
Run Code Online (Sandbox Code Playgroud)
然后我有我的形式=
<form name="sort" action="products.php" method="post">
<select name="order">
<option value="choose">Make A Selection</option>
<option value="title">Title</option>
<option value="author">Author</option>
<option value="publisher">Publisher</option>
<option value="isbn">Book ISBN-10</option>
</select>
<input type="submit" value=" - Sort - " />
</form>
Run Code Online (Sandbox Code Playgroud)
现在我不能这样做,
我设置了变量:
$sort = $_POST['order'];
Run Code Online (Sandbox Code Playgroud)
所以,无论下拉菜单的价值如何,都将被赋值给变量$ sort .....(是吗?)
那么我想说,如果$ sort的值与我们说'作者'的价值相同而不是$ query = $ query2但是我不知道怎么说没有XAMPP提供的大错误!
我希望这一切都有意义,我尝试实现它的方法接近正确
谢谢
要排序我会做以下事情:
更改选项值以匹配表中的列名设置排序选项,如果他们没有选择任何内容,则包括默认值:
$sort=$_POST["order"]!="choose"?$_POST["order"]:"bookname";
Run Code Online (Sandbox Code Playgroud)
然后只需设置您的查询使用:
ORDER BY ".mysql_real_escape_string($sort)." ASC
Run Code Online (Sandbox Code Playgroud)
这样,您只需要一个查询,而不是每个案例的查询.