[SQL] tri multiples critères

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [SQL] tri multiples critères

par Truc » 19 juil. 2007, 09:33

affiche la requête générée et verifie la syntaxe... le retour de ta fonction notamment.

par Invité » 18 juil. 2007, 19:57

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:

par Truc » 18 juil. 2007, 18:20

Une fois retirés j'obtient une erreur donc j'ai plutot ajouté des " et des .
Et quelle erreur ?
Avec quelle instruction (requête)?

par supercanard » 18 juil. 2007, 18:08

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

par Truc » 18 juil. 2007, 18:02

C'est à dire ?? tu les as retirées ?

Les remarques d'Hubert restent valables :roll:

par supercanard » 18 juil. 2007, 17:59

Code : Tout sélectionner

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

par Truc » 18 juil. 2007, 17:52

des quotes (apostrophes) de trop dans la requête :idea:

par Hubert Roksor » 18 juil. 2007, 17:39

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

par supercanard » 18 juil. 2007, 17:29

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

par Truc » 18 juil. 2007, 17:16

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:

par Ryle » 18 juil. 2007, 17:09

bah non, c'est juste pourtant... fais voir la requête et un exemple de ce qui ressort dans le désordre ?

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

Essaye

Code : Tout sélectionner

ORDER BY importance, titre_note ASC

[SQL] tri multiples critères

par supercanard » 18 juil. 2007, 16:53

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