как я могу использовать порядок и между в MySQL - PullRequest
0 голосов
/ 13 июня 2018

У меня проблема с использованием Order and Between в этом коде mysql:

<?php 

$connection = mysqli_connect("localhost","my_user","my_password","my_db");
$id = $_GET["id"];
$query = "Select * from my_data where id between ($id+1) and ($id+4)";
$result = mysqli_query($connection,$query);
while ($row = mysqli_fetch_assoc($result)) {

    $array[] = $row;    
}
header('Content-Type:Application/json');
echo json_encode($array);?>

Я хочу вывод в порядке убывания по id, пожалуйста, помогите мне

Ответы [ 4 ]

0 голосов
/ 13 июня 2018

Давайте попробуем это:

Я добавил дополнительный параметр order, если он не установлен, тогда он будет давать нисходящий порядок, в противном случае установите его на &order=asc для получения результата заказа.заказ осуществляется на id в поле.

Обновите настройки подключения к базе данных

<?php 

   //kindly change connection parameter as per you need
    $connection = mysqli_connect("localhost","root","","test");
   $id = $_GET["id"];

   isset( $_GET['order']) ? $order =$_GET['order'] : $order= 'desc';

   if($order === 'asc'){
       $query = "Select * from person where id between ($id+1) and ($id+4) order by id asc";
   }else{
       $query = "Select * from person where id between ($id+1) and ($id+4) order by id desc";
   }


  $result = mysqli_query($connection,$query);
 while ($row = mysqli_fetch_assoc($result)) {
    $array[] = $row;    
 }
 header('Content-Type:Application/json');

    echo json_encode($array);
?>

** ПРИМЕЧАНИЕ URL **

ВЫХОД ASC enter image description here

Выход DESC enter image description here

0 голосов
/ 13 июня 2018

$ query = "Выбрать * из my_data, где идентификатор между ($ id + 1) и ($ id + 4) упорядочен по id desc";

Остерегайтесь внедрения SQL в способе обработки вашегозапросы!

0 голосов
/ 13 июня 2018

Попробуйте использовать это.

<?php 
$connection = mysqli_connect("localhost","my_user","my_password","my_db");
$id = $_GET["id"];
$query ="";
$query.= "Select * from my_data where id between ($id+1) and ($id+4)";
$query.= " order by id DESC"; //concat query as per requirement. 
$result = mysqli_query($connection,$query);
while ($row = mysqli_fetch_assoc($result)) {

    $array[] = $row;    
}
header('Content-Type:Application/json');
echo json_encode($array);
?>  

Вы также можете динамически передавать порядок по имени поля и порядок по типу (asc / desc), устанавливая их в переменную.не стесняйтесь задавать любые вопросы по этому поводу.

0 голосов
/ 13 июня 2018

Итак, вы хотите, чтобы запись с самым высоким идентификатором была первой?Тогда должно быть так:

Select * from my_data where id between ($id+1) and ($id+4) ORDER BY id DESC
...