Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: lud134 le le 09-11-2003 a 07:43:12

Titre: REQUETE
Posté par: lud134 le le 09-11-2003 a 07:43:12

SALUT, JE RECHERCHE AFAIRE UNE REQUETE MYSQL DANS UN CODE PHP DU STYLE: $result=mysql_query(SELECT nom from table WHERE nom commance par S ou autre chose du genre "commence par $connstante qui serait définie par l'utilisateur).
j'y arrive pas alors si quelqu'un de sympa peut me donner un petit coup de main., merci mille fois d'avance.
Lud

Titre: Re:REQUETE
Posté par: Franzsoft le le 09-11-2003 a 09:33:22

sql pour Access o SQLServer on fait com ca:
SELECT * Tables WHERE (((tables.Nome) Like "S*"))
MySQL ???

Titre: Re:REQUETE
Posté par: FireLink le le 09-11-2003 a 11:56:28

$requete=mysql_query("SELECT nom FROM table WHERE nom = '$variable%'");

J'ai pas testé il y a peut-être des erreurs dans le code mais je suis certain que le principe est bon...

Titre: Re:REQUETE
Posté par: erwinol le le 09-11-2003 a 14:43:36

Aucune des 2 ne va fonctionner.

qui commence par 'S' :

SELECT * FROM Tables WHERE nom LIKE 'S%'

qui commence par une variable :

SELECT * FROM table WHERE nom LIKE '$variable%'

Titre: Re:REQUETE
Posté par: FireLink le le 10-11-2003 a 01:04:37

Arg, oui c'est vrai j'aurais du regarder dans mes vieux scripts.

Titre: Re:REQUETE
Posté par: erwinol le le 10-11-2003 a 19:20:12

Pas de problème, l'interet d'un forum est justement d'avoir plusieurs chances d'avoir des réponses ... le principal est de participer ;)

En fait je peux expliquer tout ça simplement :

Dans la requete de Franzsoft, il manque déjà le FROM ... en effet on met tjs


Code:

SELECT champs
FROM table


Ensuite il met pleins de parenthèses inutiles qui complexifient la requete.

Il faut essayer de prendre la bonne habitude de mettre les chaines de caractères entre simples quotes (') et non doucles quotes ("), même si les " fonctionnent très bien ... c'est comme les navigateurs qui acceptent n'importe quoi en HTML :p

Quand on veut comparer des chaines on peut utiliser le signe d'égalité (=) mais pas quand il s'agit de voir si la chaine contient tel ou tel caractère ou commence ou se termine par tel chaine... dans ce cas on utilise LIKE.

% remplace une chaine quelconque (chaine vide, caractère ou chaine)
- remplace une lettre
ABC est une constante qui représente ABC

Donc une chaine dont le 2ème caractère est un A, avec au milieu la chaine erwinol et qui termine par un B :

[CODE]WHERE chaine LIKE '-A%erwinol%B'[/CODE]

(obligation d'utiliser LIKE et non =)

Enfin ça ne m'a pas empeché de ne faire que 12,5/20 à mon interro de SQL mais ct quand même vachement plus compliqué que ça :)


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.