Page 1 sur 1

[SQL] tri multiples critères

Posté : 18 juil. 2007, 16:53
par supercanard
Bonjour

Voilà mon (autre) problème.

J'ai des entrées possédant un indice d'importance, 1 pour tres important, 2 pour important, ect...
Ainsi qu'un titre.

Je voudrais les sortir de cette façon :

Ici les entrées ayant un indice de 1, classées par ordre alphabetique sur le titre
Ici les entrés ayant un indice de 2, idem
ect...

Alors j'ai donc fait ceci dans ma requete :

Code : Tout sélectionner

ORDER BY importance ASC,titre_note ASC
J'imagine que c'est complétement faux ?
Car tout ressort nimporte comment, même avec des indices d'importance identiques

Posté : 18 juil. 2007, 17:09
par Sékiltoyai
Essaye

Code : Tout sélectionner

ORDER BY importance, titre_note ASC

Posté : 18 juil. 2007, 17:09
par Ryle
bah non, c'est juste pourtant... fais voir la requête et un exemple de ce qui ressort dans le désordre ?

Posté : 18 juil. 2007, 17:16
par Truc
Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "SQL & Bases de données".

D'ailleurs tu le mets toi même dans le titre :roll:

Posté : 18 juil. 2007, 17:29
par supercanard
Désolé pour le mauvais post ;)

Exemple

"xéon" sort avant "note sans titre"
Ils sont tous deux un indice de priorité de 1

Ma requete :

Code : Tout sélectionner

$req_notes= mysql_query ("SELECT id_note,titre_note,texte_note FROM ipi_notes WHERE user='".$_SESSION['session_user']."' AND corbeille=0 ORDER BY '$tri'");
$tri contient la chaine de caractere : importance ASC,titre_note ASC

Posté : 18 juil. 2007, 17:39
par Hubert Roksor
Je pense que l'on va avoir besoin de plus d'infos pour y voir plus clair. C/P time:

Rappel pratique - n'oubliez pas de :
  • suivre ces quelques conseils de débogage
  • préciser quel SGBD vous utilisez ainsi que sa version
  • utiliser les balises

    Code : Tout sélectionner

    [/b] et [b]
    [/b] pour afficher du SQL[/color]
  • poster le schéma des tables pertinentes à votre requête sous la forme d'une instruction "CREATE TABLE" (vous pouvez retirer les colonnes qui ne sont pas utilisées dans les requêtes problématiques)
  • si nécessaire, poster un échantillon des données

Posté : 18 juil. 2007, 17:52
par Truc
des quotes (apostrophes) de trop dans la requête :idea:

Posté : 18 juil. 2007, 17:59
par supercanard

Code : Tout sélectionner

'".$tri."'
Mais par contre rien ne change au problème :roll:

Posté : 18 juil. 2007, 18:02
par Truc
C'est à dire ?? tu les as retirées ?

Les remarques d'Hubert restent valables :roll:

Posté : 18 juil. 2007, 18:08
par supercanard
Une fois retirés j'obtient une erreur donc j'ai plutot ajouté des " et des .

Désolé mais comme je suis vraiment pas calé en SQL... je vais regarder pour les commentaires.
Déjà voilà pour ça : Version du client MySQL: 4.1.11

Sinon le champ en question est int(1), défaut 1

Posté : 18 juil. 2007, 18:20
par Truc
Une fois retirés j'obtient une erreur donc j'ai plutot ajouté des " et des .
Et quelle erreur ?
Avec quelle instruction (requête)?

Posté : 18 juil. 2007, 19:57
par Invité
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

Si je fait ceci :

Code : Tout sélectionner

$req_notes= mysql_query ("SELECT id_note,titre_note,texte_note FROM ipi_notes WHERE user='".$_SESSION['session_user']."' AND corbeille=0 ORDER BY $tri");
Par contre si je fait comme ça, pas d'erreur mais le tri ne fonctionne pas :

Code : Tout sélectionner

$req_notes= mysql_query ("SELECT id_note,titre_note,texte_note FROM ipi_notes WHERE user='".$_SESSION['session_user']."' AND corbeille=0 ORDER BY '".$tri."'");
Voici la fonction associé à la variable $tri :
function tri_notes() { // TRI DES NOTES
	$tmp= $_SESSION['tri_notes'];
	switch($tmp) {
		case 1:
		$tri= 'importance ASC,id_note ASC';
		break;
		case 2:
		$tri= 'importance ASC,titre_note ASC';
		break;
		$tri= 'titre_note ASC';
		break;
		$tri= 'importance ASC';
	}
	return $tri;
}
Que j'apelle de cette façon avant ma requete :
$tri= tri_notes(); // APPEL DE LA FONCTION DE TRI DES NOTES
Je pense avoir tout dit :roll:

Posté : 19 juil. 2007, 09:33
par Truc
affiche la requête générée et verifie la syntaxe... le retour de ta fonction notamment.