Page 1 sur 1
[Résolu] [Qst] - Eliminer un facteur lors de la recherche...
Posté : 15 mai 2009, 02:48
par casio
Salutations,
Je cherche a exclure des requêtes SQL les enregistrements dont les champs "Verif." contiennent "//", et je ne sais pas comment paramètrer la requête SELECT. J'ai essayé avec WHERE, mais je ne dois pas avoir une bonne nomenclature...
Pouvez-vous m'aider ?
Posté : 15 mai 2009, 09:27
par stopher
Slt ,
Donnes nous plus de détails ,
requêtes qui posent problèmes , exemples ect ..
sinon , c'est assez difficile de bien cerner ton problème , et l'on risque de répondre à coté .
Ch.
Posté : 26 mai 2009, 00:50
par casio
(...)
Donnes nous plus de détails ,
(...)
Indeed...
Sur la requête suivante :
(...)
$select = 'select *, TO_DAYS( NOW( ) ) - TO_DAYS( `Modif.` ) < 15 AS new FROM Ordinateurs ORDER BY '.$order.',Introduction,Marque,Modele'; // Recherche des catégories
(...)
J'aimerais rajouter la condition "WHERE Verif. n'est pas '//'"...
Mais je butte sur la nomenclature...
Posté : 26 mai 2009, 01:41
par furiouslol
Salut
WHERE verif <> '15'
Posté : 26 mai 2009, 10:20
par casio
Salut
WHERE verif <> '15'
Pourquoi "15" ?
Posté : 26 mai 2009, 22:25
par furiouslol
Euh ouais je suis passé trop vite fait, autant pour moi
Donc l'opérateur "différent de" c'est <> en SQL
Donc WHERE verif <> 'ta valeur'
Posté : 27 mai 2009, 08:49
par casio
Merci.
Du coup, j'ai maintenant :
(...)
$select = 'select *, TO_DAYS( NOW( ) ) - TO_DAYS( `Modif.` ) < 15 AS new FROM Ordinateurs WHERE Verif. <> '//' ORDER BY '.$order.',Introduction,Marque,Modele'; // Recherche des catégories
(...)
Note que j'ai essayé "//", // et '//' et les trois me retournent une erreur :
Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<> // ORDER BY Introduction,Introduction,Marque,Modele' at line 1
Du coup, je me demande s'il aime bien les //.
Est il possible plutôt de tester si le champs à plus de 2 caractères ? (En gros, n'afficher que ce qui a plus de caractères que //)
Posté : 01 juin 2009, 14:34
par casio
Any idea ?
Posté : 01 juin 2009, 19:10
par ouckileou
Ben ça se voit rien qu'à la coloration là :
premier apostrophe : début de la chaîne
deuxième (avant les slashes) : fin de la chaîne
double slashes : commentaire PHP
Je comprends même pas que ce code ne plante pas dès l'exécution du script.
c'est ta construction de chaîne qui est en cause, pas les //.
Posté : 05 juin 2009, 16:44
par casio
Ben ça se voit rien qu'à la coloration là :
premier apostrophe : début de la chaîne
deuxième (avant les slashes) : fin de la chaîne
double slashes : commentaire PHP
Je comprends même pas que ce code ne plante pas dès l'exécution du script.
c'est ta construction de chaîne qui est en cause, pas les //.
Je viens de tout re-vérifier.
J'ai donc maintenant :
(...)
$select = "SELECT *, TO_DAYS( NOW( ) ) - TO_DAYS( `Modif.` ) < 15 AS new FROM Ordinateurs WHERE Verif. <> '//' ORDER BY ".$order.",Introduction,Marque,Modele"; // Recherche des catégories
(...)
Mais cela continue de me donner :
Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<> '//' ORDER BY Introduction,Introduction,Marque,Modele' at line 1

Posté : 05 juin 2009, 18:46
par Ryle
Le message d'erreur de mysql t'indique l'endroit exacte où mysql a rencontré un problème. Maintenant ce problème est généralement lié à l'élément qui se trouve juste avant
En effet, MySQL ne parvient pas à identifier de colonne nommée "Verif" ni d'instruction correspondant à un point ".", résultat il t'envoi une erreur...
Avec MySQL tu peux protéger le nom des champs comme tu l'as fait au début de ta requête
mais le mieux reste quand même dès le départ de ne pas mettre de caractères spéciaux autre que "-" ou "_" dans le nom d'un champ

Posté : 05 juin 2009, 19:52
par casio
Le message d'erreur de mysql t'indique l'endroit exacte où mysql a rencontré un problème. Maintenant ce problème est généralement lié à l'élément qui se trouve juste avant
En effet, MySQL ne parvient pas à identifier de colonne nommée "Verif" ni d'instruction correspondant à un point ".", résultat il t'envoi une erreur...
Avec MySQL tu peux protéger le nom des champs comme tu l'as fait au début de ta requête
mais le mieux reste quand même dès le départ de ne pas mettre de caractères spéciaux autre que "-" ou "_" dans le nom d'un champ

Indeed
C'était juste ce point qui m'enquiquinait.
Merci à vous ! Je clos la requête.