Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 下拉式排序选项不起作用_Php_Sql - Fatal编程技术网

Php 下拉式排序选项不起作用

Php 下拉式排序选项不起作用,php,sql,Php,Sql,我正在尝试使用下拉框对我的产品进行分类。当我选择一个选项时,代码不会运行,产品不会改变位置。iv通过使用不同的按钮对产品进行分类,但我认为在网站上使用下拉列表会更好 <?php echo $sort = @$_GET['order']; if (!empty($sort)) { echo $query="SELECT * FROM products ORDER BY '".$sort."'"; } else { echo $query=

我正在尝试使用下拉框对我的产品进行分类。当我选择一个选项时,代码不会运行,产品不会改变位置。iv通过使用不同的按钮对产品进行分类,但我认为在网站上使用下拉列表会更好

  <?php
   echo $sort = @$_GET['order']; 
   if (!empty($sort)) {  
   echo $query="SELECT * FROM products ORDER BY '".$sort."'";



    } else { 
     echo $query="SELECT * FROM products order by " ;
    }
    ?>


<form name="sort" action="" method="post">
<select name="order">
   <option value="choose">Make A Selection</option>
   <option value="price_asc">Price </option>
   <option value="price_desc">Z-A</option>
   <option value="name_asc">A-Z</option>
</select>
<input type="submit" value=" - Sort - " />
</form>



<?php

//Run the query.

$record_set = $connection->query($query);

while( $row = $record_set->fetch_assoc() ) {


echo '<div class="product">'; 
echo '<div class="product-content"><h3>'. $row['name'].'</h3>' .'</div>' . '<br />'.'<div class="product-thumb"><img src="/ISD assignment2/images/'. $row['imageName'].'"></div>'. '<div class="product-desc">'.$row['description']. '</div>'. '<br />' .'&pound;'. number_format($row['price'], 2) . '<a href="../cart/cart.php?add=' . $row['productID'] . '"><p>Add</a></p>';
echo '</div>';





}
?>

两个潜在问题:
1) 你的表单没有动作。我相信你是想让它重新焕然一新。
这将是:
action=“”
2) 您正在通过POST提交,但使用GET。
$sort=$_POST['order'];

尝试将行“echo$query=“SELECT*FROM products ORDER BY.”.$sort.”替换为“echo$query=“SELECT*FROM products ORDER BY.”.str_replace(“”,“”,“”,“”,“;”)。你没有收到任何mysql错误吗?没有,我没有收到任何错误,我尝试了你的代码,它不起作用。请花一点时间思考这个问题:。然后阅读SQL注入攻击,了解如何编写不易受攻击的安全PHP代码。。。您在表单上没有任何操作!!!
Two potential issues:

1) Your Form has no action.  I believe you are trying to get it to refresh onto itself.
which would be:
action=" <?php echo $_SERVER['PHP_SELF'] ?>"

2) You are submitting via POST, yet using GET.
$sort = $_POST['order'];