Order by et union
Giriad
Messages postés
30
Statut
Membre
-
OlaaSultan.. -
OlaaSultan.. -
Bonjour,
J'ai cherché sur le net mais je trouve pas la réponse adéquate à mon problème alors je m'en remet à vous.
J'effectue la requête suivante, suivie d'un while.
mysql_query("(SELECT fiche_id, fiche_titre, fiche_note, fiche_description, fiche_url, fiche_top, fiche_entrees, fiche_sorties FROM fiches WHERE fiche_categorie = " . (int) $_GET['c'] . " AND fiche_top=0 ORDER BY fiche_note DESC) UNION (SELECT fiche_id, fiche_titre, fiche_note, fiche_description, fiche_url, fiche_top, fiche_entrees, fiche_sorties FROM fiches WHERE fiche_categorie = " . (int) $_GET['c'] . " AND fiche_top=1 ORDER BY fiche_entrees ASC) LIMIT " . $premiereFicheAAfficher . ", " . $nombreDeFichesParPage . " ") or die(mysql_error());
Mais le second order by <<fiche_entrees ASC>> n'a aucun effet.
Je ne comprends pas comment faire.
Merci beaucoup
En attente de vos réponses
J'ai cherché sur le net mais je trouve pas la réponse adéquate à mon problème alors je m'en remet à vous.
J'effectue la requête suivante, suivie d'un while.
mysql_query("(SELECT fiche_id, fiche_titre, fiche_note, fiche_description, fiche_url, fiche_top, fiche_entrees, fiche_sorties FROM fiches WHERE fiche_categorie = " . (int) $_GET['c'] . " AND fiche_top=0 ORDER BY fiche_note DESC) UNION (SELECT fiche_id, fiche_titre, fiche_note, fiche_description, fiche_url, fiche_top, fiche_entrees, fiche_sorties FROM fiches WHERE fiche_categorie = " . (int) $_GET['c'] . " AND fiche_top=1 ORDER BY fiche_entrees ASC) LIMIT " . $premiereFicheAAfficher . ", " . $nombreDeFichesParPage . " ") or die(mysql_error());
Mais le second order by <<fiche_entrees ASC>> n'a aucun effet.
Je ne comprends pas comment faire.
Merci beaucoup
En attente de vos réponses
7 réponses
Merci pour ta réponse
Je ne comprends pas ce que tu veux dire par "format" du champ.
Il n'y a aucune erreur, mais le deuxième order by n'a aucun effet.
Enfaite ce que j'aimerais c'est d'abord trier les fiches par notes si elles remplissent la condition fiche_top=0
Puis ensuite quand toutes les fiches par note sont mises je mets les fiches qui remplissent la condition fiche_top=1 trier par fiche_entrees (visiteurs reçus).
Je ne comprends pas ce que tu veux dire par "format" du champ.
Il n'y a aucune erreur, mais le deuxième order by n'a aucun effet.
Enfaite ce que j'aimerais c'est d'abord trier les fiches par notes si elles remplissent la condition fiche_top=0
Puis ensuite quand toutes les fiches par note sont mises je mets les fiches qui remplissent la condition fiche_top=1 trier par fiche_entrees (visiteurs reçus).
Bah moi j'ai fais la même chose sauf que j'ai mis le limit à la fin, faut que je laisse à la fin car par exemple j'affiche 8 fiches par page, je peux pas savoir combien j'affiche de fiche par note et de fiche par entrées.
ça m'enerve pourquoi le 2 ème order by se prend pas en compte.
ça m'enerve pourquoi le 2 ème order by se prend pas en compte.
Il prend bien en compte tout sauf le deuxième order by.
Vous avez pas une solution ?
Vous avez pas une solution ?
Re,
En supposant qu'il n'y aucune erreur dans ta requête :
Essaye de mettre un GROUP BY a ASC et GROUP BY b DESC plutôt qu'un ORDER BY a ASC et ORDER BY b DESC et dis nous ce que ça donne.
Normalement, ça revient strictement au même dans ce cas mais peut être que l'UNION aura un comportement différent par rapport aux GROUP BY.
Slt.
En supposant qu'il n'y aucune erreur dans ta requête :
Essaye de mettre un GROUP BY a ASC et GROUP BY b DESC plutôt qu'un ORDER BY a ASC et ORDER BY b DESC et dis nous ce que ça donne.
Normalement, ça revient strictement au même dans ce cas mais peut être que l'UNION aura un comportement différent par rapport aux GROUP BY.
Slt.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Enfaite nan ça avait l'air de marcher mais enfaite ça ne sélectionne pas toutes les fiches.
Voir : https://www.lesmeilleursjeux.net/
ça marche pour les 2 premières pages mais pas les trois suivantes.
Voir : https://www.lesmeilleursjeux.net/
ça marche pour les 2 premières pages mais pas les trois suivantes.
Ok j'ai pigé, j'ai fais ça : $sqlCoupons = mysql_query("(SELECT fiche_id, fiche_titre, fiche_note, fiche_description, fiche_url, fiche_top, fiche_entrees, fiche_sorties FROM fiches WHERE fiche_categorie = " . (int) $_GET['c'] . " AND fiche_top=0 ORDER BY fiche_note DESC, fiche_entrees DESC) UNION (SELECT fiche_id, fiche_titre, fiche_note, fiche_description, fiche_url, fiche_top, fiche_entrees, fiche_sorties FROM fiches WHERE fiche_categorie = " . (int) $_GET['c'] . " AND fiche_top=1 ORDER BY fiche_entrees DESC, fiche_note DESC) LIMIT " . $premiereFicheAAfficher . ", " . $nombreDeFichesParPage . " ") or die(mysql_error());
ça à l'air de marcher
ça à l'air de marcher
Peut tu nous donner le format de ce champ + nous mettre un lien sur un exemple d'enregistrements retournés ?..
Merci.