作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
预先警告:我确定我的代码笨拙且效率低下,请随时给我打电话。我对此很陌生。
我正在尝试按列对我的查询结果进行排序,该列表示为选择输入的结果。选择输入存在于 feed.php 上,它具有 include: 'feedphp2.php
。
使用 action="feedSort.php"
选择输入自动提交 onchange。 feedSort.php 获取提交的值并重定向到 feed.php?sort=submittedValue
。然后 feed.php 中包含的 feedphp2.php 采用 $_GET['sort']
值并提取按该列排序的查询。
//feed.php
<?php
session_start();
if(!isset($_SESSION['userID'])) {
header('Location: login.html');
}
?>
<html>
<head>
<title>Title</title>
<link href="style.css" type="text/css" rel="stylesheet">
<link href='https://fonts.googleapis.com/css
family=Josefin+Sans:400,100,300,600,700' rel='stylesheet' type='text/css'>
</head>
<body style="background-color:rgba(0,212,242,0.1)">
<div class="headerSmall">
<div class="container">
<a href="index.php"><img class="logoImgSmall"
src="images/logosmall2.png"></a>
<div class="navFeed">
<?php include 'usernameGet.php';?>,<a
href="sessionDestroy.php">Log Out</a>
<a href="addMeal.php">List a Meal</a>
<a href="dashboardBought.php">Dashboard</a>
</div>
</div>
</div>
<div class="container">
<div class="sort">
<form action="feedSort.php" method="POST">
<select name="sortForm" onchange="this.form.submit()">
<option value="">Sort By...</option>
<option value="user">By User</option>
<option value="dateAdded">By Date Added</option>
</select>
</form>
</div>
<?php include 'feedphp2.php'?>
</div>
</body>
</html>
空间
//feedphp2.php
<?php
include 'MysqlConnect.php';
mysqli_select_db($conn,$dbname);
if (isset($_GET['sort'])) {
$sortBy = $_GET['sort'];
echo $sortBy;
$resultQuery = "SELECT * FROM meals
ORDER BY '$sortBy'";
} else {
echo 'sortBy is not set.';
$resultQuery = "SELECT * FROM meals
ORDER BY user";
}
$result = mysqli_query($conn, $resultQuery);
//Write to divs
while ($rows = mysqli_fetch_assoc($result)) {
$imgSrc = $rows['image'];
echo '<a href="meal.php?'.'mealID=';
echo $rows['ID'];
echo '">';
echo '<div class="entry">';
echo '<div class="foodPic">';
echo '<img src="';
echo $imgSrc;
echo '">';
echo '</div>';
echo '<p class="entryName">'.$rows['mealName'].'</p>';
echo '<p class="entryServ">'.$rows['mealQuan'].'</p>';
echo '<p
class="entryPrice">$'.$rows['mealDollars'].'.'.$rows['mealCents'].'</p>';
echo '<img class="servingsIco" src="images/servings.png">';
echo '<p class="user">'.$rows['user'].'</p>';
echo '</div>';
echo '</a>';
}
?>
空间//feedSort.php:
<?php
session_start();
$sortBy = $_POST['sortForm'];
header ("Location: feed.php?sort=".$sortBy."");
?>
我的表中的列同时存在于 user
和 dateAdded
中,并且在查询中明确提供时完美排序,即:SELECT * FROM meals
。然而,虽然通过 PHP 变量提供:
按用户订购
其中 $sortBy = user
返回与 $sortBy = dateAdded
完全相同的排序顺序。
非常感谢您提供的任何帮助。
最佳答案
您使用 $_POST 方法传递值并使用 $_GET 方法检索它。并更改不带引号的 $sortby。在 feedphp2.php 中编辑这些行
<?php
include 'MysqlConnect.php';
mysqli_select_db($conn,$dbname);
if (isset($_POST['sort'])) {
$sortBy = $_POST['sort'];
echo $sortBy;
$resultQuery = "SELECT * FROM meals
ORDER BY $sortBy";
} else {
或者使用 $_REQUEST[], 获取 get 和 post 方法的方法
<?php
include 'MysqlConnect.php';
mysqli_select_db($conn,$dbname);
if (isset($_REQUEST['sort'])) {//request method
$sortBy = $_REQUEST['sort'];//
echo $sortBy;
$resultQuery = "SELECT * FROM meals
ORDER BY $sortBy";
} else {
关于php MYSQL 查询 "ORDER BY"不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34701779/
我是一名优秀的程序员,十分优秀!