[RESOLU] Où placer ORDER BY id DESC dans une requête select ?

Eléphanteau du PHP | 24 Messages

23 déc. 2015, 20:15

Bonjour à tous;
Encore une question qui va vous sembler facile mais, moi, je bute.
Voici une partie de code
$req = $bdd->prepare('SELECT * FROM disponibilite WHERE id_location = :id_location'); 
$req->execute(array('id_location' => $_POST['id_location']));
while ($donnees = $req->fetch())
{
	echo '<p>N°sem=>'. $donnees['id_semaine'] . '  Dates=> ' . $donnees['dates'] . '<br /> ' . $donnees['prix'] . ' euros => ' . $donnees['dispo'] . '</p> ';
}
Ma question est : où placer ORDER BY id_semaine DESC ??? On le vois souvent après WHERE mais là id_semaine ne s'y trouve pas, Alors ???

Merci de vos réponses.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

23 déc. 2015, 20:20

Bonjour,

Il faut le placer à la fin de ta requête.
Il n'y a pas besoin que le champ sur lequel tu veux faire le tri (id_semaine) soit indiqué explicitement dans le SELECT ou le WHERE de ta requête, il faut juste que ça correspondent bien à un champ de ta table.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 24 Messages

23 déc. 2015, 21:58

Bon, j'ai trouvé, je n'avais jamais vu malgré mes recherches;
Voici où le placer :
$req = $bdd->prepare('SELECT * FROM disponibilite WHERE id_location = :id_location ORDER BY id_semaine ASC');
ça peu servir à quelqu'un.
Merci @rthur et bonne fêtes de fin d'année à tous.
Cordialement.