Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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 使用<;选择>;对mysql数据库进行排序,但什么也没发生_Php_Mysql_Sorting - Fatal编程技术网

Php 使用<;选择>;对mysql数据库进行排序,但什么也没发生

Php 使用<;选择>;对mysql数据库进行排序,但什么也没发生,php,mysql,sorting,Php,Mysql,Sorting,以下是我的MySQL代码: $sql = "SELECT * FROM ProductManagement ORDER BY ID ASC;"; $result = $connection->query($sql); if ($result->num_rows > 0) { echo "<p><table> <tr> <th>ID</th> <th>Film Name&l

以下是我的MySQL代码:

$sql = "SELECT * FROM ProductManagement ORDER BY ID ASC;";

$result = $connection->query($sql);

if ($result->num_rows > 0) {
    echo "<p><table>
    <tr>
    <th>ID</th>
    <th>Film Name</th>
    <th>Producer</th>
    <th>Year Published</th>
    <th>Stock</th>
    <th>Price</th>
    <th>Function</th>
    </tr>";
    while($row = $result->fetch_assoc()) {
  echo "
    <tr>
        <td>".$row["ID"]."</td>
        <td>".$row["FilmName"]."</td>
        <td>".$row["Producer"]."</td>
        <td>".$row['YearPublished']."</td>
        <td>".$row['Stock']."</td>
        <td>".$row['Price']."</td>
        <td><a href=\"edit.php?ID=".$row["ID"]."\">Edit</a>
        <td><a href=\"delete.php?ID=".$row["ID"]."\">Delete</a>
    </tr>";
    }
    echo "</table>";
} 
else {
    echo "0 results";
}
 $sort = @$_POST['order'];
if ($_GET['sortby'] == '1')
{
     "SELECT * FROM ProductManagement ORDER BY FilmName ASC";
}
elseif ($_GET['sortby'] == '2')
{
    "SELECT * FROM ProductManagement ORDER BY FilmName DESC";
}
$sql=“按ID ASC从ProductManagement订单中选择*”;
$result=$connection->query($sql);
如果($result->num_rows>0){
回声“
身份证件
电影名称
制作人
出版年份
股票
价格
作用
";
而($row=$result->fetch_assoc()){
回声“
“$row[“ID”]”
“$row[“FilmName”]”
“$row[“Producer”]”
“$row['YearPublished']”
“$row[‘股票’]”
“$row[‘价格’]”
";
}
回声“;
} 
否则{
回显“0结果”;
}
$sort=@$_POST['order'];
如果($_GET['sortby']=='1')
{
“按FilmName ASC从ProductManagement订单中选择*”;
}
elseif($_GET['sortby']='2')
{
“按FilmName DESC从ProductManagement订单中选择*”;
}
表格代码如下:

<form name="sort" action="" method="post">
    <select name="sortby">
    <option value="1">Film Name - Ascending</option>
    <option value="2">Film Name - Descending</option>
    <input type="submit" value="Sort"/>
</select> 
<form>

电影名称-升序
电影名称-降序

我正在尝试按电影名称升序或降序对表进行排序。但是,当我为任一按钮单击submit时,数据库不会执行任何操作,也不会发生任何事情。我该怎么办?谢谢

我想你应该把这些行重新排列成下面这样

$sort = @$_POST['order'];

if (isset($_POST['sortby']) && $_POST['sortby'] == '1')
{
    $sql = "SELECT * FROM ProductManagement ORDER BY FilmName ASC";
}
elseif (isset($_POST['sortby']) && $_POST['sortby'] == '2')
{
    $sql = "SELECT * FROM ProductManagement ORDER BY FilmName DESC";
}
else 
{
    $sql = "SELECT * FROM ProductManagement ORDER BY ID ASC;";
}
$result = $connection->query($sql);

if ($result->num_rows > 0) {
    echo "<p><table>
    <tr>
    <th>ID</th>
    <th>Film Name</th>
    <th>Producer</th>
    <th>Year Published</th>
    <th>Stock</th>
    <th>Price</th>
    <th>Function</th>
    </tr>";
    while($row = $result->fetch_assoc()) {
  echo "
    <tr>
        <td>".$row["ID"]."</td>
        <td>".$row["FilmName"]."</td>
        <td>".$row["Producer"]."</td>
        <td>".$row['YearPublished']."</td>
        <td>".$row['Stock']."</td>
        <td>".$row['Price']."</td>
        <td><a href=\"edit.php?ID=".$row["ID"]."\">Edit</a>
        <td><a href=\"delete.php?ID=".$row["ID"]."\">Delete</a>
    </tr>";
    }
    echo "</table>";
} 
else {
    echo "0 results";
}
$sort=@$\u POST['order'];
如果(isset($\u POST['sortby'])和&$\u POST['sortby']='1')
{
$sql=“按FilmName ASC从ProductManagement订单中选择*”;
}
elseif(isset($\u POST['sortby'])和&$\u POST['sortby']='2')
{
$sql=“按FilmName DESC从ProductManagement订单中选择*”;
}
其他的
{
$sql=“按ID ASC从ProductManagement订单中选择*”;
}
$result=$connection->query($sql);
如果($result->num_rows>0){
回声“
身份证件
电影名称
制作人
出版年份
股票
价格
作用
";
而($row=$result->fetch_assoc()){
回声“
“$row[“ID”]”
“$row[“FilmName”]”
“$row[“Producer”]”
“$row['YearPublished']”
“$row[‘股票’]”
“$row[‘价格’]”
";
}
回声“;
} 
否则{
回显“0结果”;
}

我想你应该把这些行重新排列成下面这样

$sort = @$_POST['order'];

if (isset($_POST['sortby']) && $_POST['sortby'] == '1')
{
    $sql = "SELECT * FROM ProductManagement ORDER BY FilmName ASC";
}
elseif (isset($_POST['sortby']) && $_POST['sortby'] == '2')
{
    $sql = "SELECT * FROM ProductManagement ORDER BY FilmName DESC";
}
else 
{
    $sql = "SELECT * FROM ProductManagement ORDER BY ID ASC;";
}
$result = $connection->query($sql);

if ($result->num_rows > 0) {
    echo "<p><table>
    <tr>
    <th>ID</th>
    <th>Film Name</th>
    <th>Producer</th>
    <th>Year Published</th>
    <th>Stock</th>
    <th>Price</th>
    <th>Function</th>
    </tr>";
    while($row = $result->fetch_assoc()) {
  echo "
    <tr>
        <td>".$row["ID"]."</td>
        <td>".$row["FilmName"]."</td>
        <td>".$row["Producer"]."</td>
        <td>".$row['YearPublished']."</td>
        <td>".$row['Stock']."</td>
        <td>".$row['Price']."</td>
        <td><a href=\"edit.php?ID=".$row["ID"]."\">Edit</a>
        <td><a href=\"delete.php?ID=".$row["ID"]."\">Delete</a>
    </tr>";
    }
    echo "</table>";
} 
else {
    echo "0 results";
}
$sort=@$\u POST['order'];
如果(isset($\u POST['sortby'])和&$\u POST['sortby']='1')
{
$sql=“按FilmName ASC从ProductManagement订单中选择*”;
}
elseif(isset($\u POST['sortby'])和&$\u POST['sortby']='2')
{
$sql=“按FilmName DESC从ProductManagement订单中选择*”;
}
其他的
{
$sql=“按ID ASC从ProductManagement订单中选择*”;
}
$result=$connection->query($sql);
如果($result->num_rows>0){
回声“
身份证件
电影名称
制作人
出版年份
股票
价格
作用
";
而($row=$result->fetch_assoc()){
回声“
“$row[“ID”]”
“$row[“FilmName”]”
“$row[“Producer”]”
“$row['YearPublished']”
“$row[‘股票’]”
“$row[‘价格’]”
";
}
回声“;
} 
否则{
回显“0结果”;
}

我想这是你的问题

$sql = "SELECT * FROM ProductManagement ORDER BY ID ASC;";
你想重新订购吗

所以在此之前,你应该选择GET或POST,但例如,我将使用POST

$order = $_POST['order'];// this can be DESC or ASC
然后将$order放入查询中

$sql = "SELECT * FROM ProductManagement ORDER BY FilmName $order;";

因此,在您的查询结果中过账后,订单发生了更改

我假设这是您的查询

$sql = "SELECT * FROM ProductManagement ORDER BY ID ASC;";
你想重新订购吗

所以在此之前,你应该选择GET或POST,但例如,我将使用POST

$order = $_POST['order'];// this can be DESC or ASC
然后将$order放入查询中

$sql = "SELECT * FROM ProductManagement ORDER BY FilmName $order;";

因此,在@AshishChoudhury建议更改查询结果中的发布顺序后,您需要使用
$\u POST['sortby']
而不是使用
$\u GET['sortby']
,因为表单使用的是POST not GET

用这个

if (isset($_POST['sortby']) && $_POST['sortby'] == '1')
{
    $sql = "SELECT * FROM ProductManagement ORDER BY FilmName ASC";
}
elseif (isset($_POST['sortby']) && $_POST['sortby'] == '2')
{
    $sql = "SELECT * FROM ProductManagement ORDER BY FilmName DESC";
}
else 
{
    $sql = "SELECT * FROM ProductManagement ORDER BY ID ASC;";
}
$result = $connection->query($sql);

if ($result->num_rows > 0) {
    echo "<p><table>
    <tr>
    <th>ID</th>
    <th>Film Name</th>
    <th>Producer</th>
    <th>Year Published</th>
    <th>Stock</th>
    <th>Price</th>
    <th>Function</th>
    </tr>";
    while($row = $result->fetch_assoc()) {
  echo "
    <tr>
        <td>".$row["ID"]."</td>
        <td>".$row["FilmName"]."</td>
        <td>".$row["Producer"]."</td>
        <td>".$row['YearPublished']."</td>
        <td>".$row['Stock']."</td>
        <td>".$row['Price']."</td>
        <td><a href=\"edit.php?ID=".$row["ID"]."\">Edit</a>
        <td><a href=\"delete.php?ID=".$row["ID"]."\">Delete</a>
    </tr>";
    }
    echo "</table>";
} 
else {
    echo "0 results";
}
if(isset($\u POST['sortby'])&&&$\u POST['sortby']='1')
{
$sql=“按FilmName ASC从ProductManagement订单中选择*”;
}
elseif(isset($\u POST['sortby'])和&$\u POST['sortby']='2')
{
$sql=“按FilmName DESC从ProductManagement订单中选择*”;
}
其他的
{
$sql=“按ID ASC从ProductManagement订单中选择*”;
}
$result=$connection->query($sql);
如果($result->num_rows>0){
回声“
身份证件
电影名称
制作人
出版年份
股票
价格
作用
";
而($row=$result->fetch_assoc()){
回声“
“$row[“ID”]”
“$row[“FilmName”]”
“$row[“Producer”]”
“$row['YearPublished']”
“$row[‘股票’]”
“$row[‘价格’]”
";
}
回声“;
} 
否则{
回显“0结果”;
}

根据@AshishChoudhury的建议,您需要使用
$\u POST['sortby']
而不是使用
$\u GET['sortby']
,因为您的表单使用POST而不是GET

用这个

if (isset($_POST['sortby']) && $_POST['sortby'] == '1')
{
    $sql = "SELECT * FROM ProductManagement ORDER BY FilmName ASC";
}
elseif (isset($_POST['sortby']) && $_POST['sortby'] == '2')
{
    $sql = "SELECT * FROM ProductManagement ORDER BY FilmName DESC";
}
else 
{
    $sql = "SELECT * FROM ProductManagement ORDER BY ID ASC;";
}
$result = $connection->query($sql);

if ($result->num_rows > 0) {
    echo "<p><table>
    <tr>
    <th>ID</th>
    <th>Film Name</th>
    <th>Producer</th>
    <th>Year Published</th>
    <th>Stock</th>
    <th>Price</th>
    <th>Function</th>
    </tr>";
    while($row = $result->fetch_assoc()) {
  echo "
    <tr>
        <td>".$row["ID"]."</td>
        <td>".$row["FilmName"]."</td>
        <td>".$row["Producer"]."</td>
        <td>".$row['YearPublished']."</td>
        <td>".$row['Stock']."</td>
        <td>".$row['Price']."</td>
        <td><a href=\"edit.php?ID=".$row["ID"]."\">Edit</a>
        <td><a href=\"delete.php?ID=".$row["ID"]."\">Delete</a>
    </tr>";
    }
    echo "</table>";
} 
else {
    echo "0 results";
}
if(isset($\u POST['sortby'])&&&$\u POST['sortby']='1')
{
$sql=“按FilmName ASC从ProductManagement订单中选择*”;
}
elseif(isset($\u POST['sortby'])和&$\u POST['sortby']='2')
{
$sql=“按FilmName DESC从ProductManagement订单中选择*”;
}
其他的
{
$sql=“按ID ASC从ProductManagement订单中选择*”;
}
$result=$connection->query($sql);
如果($result->num_rows>0){
回声“
身份证件
电影名称
制作人
出版年份
股票
价格
作用
";
而($row=$result->fetch_assoc()){
回声“
“$row[“ID”]”
“$row[“FilmName”]”
“$row[“Producer”]”
“$row['YearPublished']”
“$row[‘股票’]”
“$row[‘价格’]”
";
}
回声“;
} 
否则{
回显“0结果”;
}

现在我更新了我的代码,请检查它。现在它的工作

$sort = @$_POST['order'];

    if (isset($_POST['sortby']) && $_POST['sortby'] == '2')
    {
        $sql = "SELECT * FROM ProductManagement ORDER BY FilmName DESC";
    }
    else
    {
        $sql = "SELECT * FROM ProductManagement ORDER BY FilmName ASC";
    }



      $result = $connection->query($sql);

    if ($result->num_rows > 0) {
        echo "<p><table>
        <tr>
        <th>ID</th>
        <th>Film Name</th>
        <th>Producer</th>
        <th>Year Published</th>
        <th>Stock</th>
        <th>Price</th>
        <th>Function</th>
        </tr>";
        while($row = $result->fetch_assoc()) {
      echo "
        <tr>
            <td>".$row["ID"]."</td>
            <td>".$row["FilmName"]."</td>
            <td>".$row["Producer"]."</td>
            <td>".$row['YearPublished']."</td>
            <td>".$row['Stock']."</td>
            <td>".$row['Price']."</td>
            <td><a href=\"edit.php?ID=".$row["ID"]."\">Edit</a>
            <td><a href=\"delete.php?ID=".$row["ID"]."\">Delete</a>
        </tr>";
        }
        echo "</table>";
    } 
    else {
        echo "0 results";
    }
$sort=@$\u POST['order'];
如果(isset($\u POST['sortby'])和&$\u POST['sortby']='2')
{
$sql=“按FilmName DESC从ProductManagement订单中选择*”;
}
其他的
{
$sql=“按FilmName ASC从ProductManagement订单中选择*”;
}
$result=$connection->query($sql);
如果($result->num_rows>0)