2 votes

Comment puis-je utiliser order et between dans mysql ?

J'ai un problème avec l'utilisation de Order et Between dans ce code 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);?>

Je veux que la sortie soit dans l'ordre décroissant par id. veuillez m'aider

0voto

Clemens Basler Points 61

Vous voulez donc que l'entrée avec l'identifiant le plus élevé soit la première ? Alors ça devrait être comme ça :

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

0voto

Leo Rams Points 359

$query = "Select * from my_data where id between ($id+1) and ($id+4) order by id desc" ;

Attention à l'injection SQL avec la façon dont vous gérez vos requêtes !

0voto

Amit Joshi Points 185

Essayez d'utiliser ceci.

<?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);
?>  

vous pouvez également passer l'ordre par nom de champ et l'ordre par type (asc/desc) dynamiquement en les définissant sur une variable. N'hésitez pas à poser toute question à ce sujet.

0voto

Er. Amit Joshi Points 525

Essayons cela :

J'ai ajouté un supplément order s'il n'est pas défini, il donnera un ordre descendant, sinon, il faut le définir comme suit &order=asc pour accéder au résultat de la commande. la commande est effectuée sur id dans le domaine.

Mettez à jour votre paramètre de connexion à la base de données

<?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);
?>

**NOTE THE URL **

SORTIE ASC enter image description here

Sortie DESC enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X