affichage divers

Eléphant du PHP | 65 Messages

18 juil. 2006, 22:23

Bonjour !

J'ai un petit problème de requête, du moins d'utilisation !

Imaginons que jai ces 3 champs dans Table :

Nom_1
Nom_2
Limitation (0, 1, 2 ou 3)

donc j'utilise la requete suivante :
SELECT * FROM Table WHERE Limitation=1
Puis je fais affiché Nom_1

Cependant, dans certains cas il n'y a pas de Nom_1 mais uniquement un Nom_2, comment puis-je faire pour qu'il affiche pour tous le nom_1 sauf a ceux qui ont uniquement un nom_2 auquel cas le nom_2 s'afficherai a la place du nom_1

Je ne demande en aucun cas un code tout fait mais une URL ou autre qui me guiderai vers une reponse ;)

Merci d'avance

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

18 juil. 2006, 22:36

Salut,

COALESCE() devrait convenir (si le champ est NULL)
Modifié en dernier par Truc le 18 juil. 2006, 22:37, modifié 1 fois.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

18 juil. 2006, 22:37

Il y a 2 possibilités :
1. en SQL : inclure dans ton SELECT un IF qui testerai la vacuité de nom_1 et nom_2
2. en PHP : afficher nom_2 uniquement lorsque nom_1 est vide

Eléphant du PHP | 65 Messages

18 juil. 2006, 22:47

Truc :

Donc en clair ça donnerai ça ?

SELECT COALESCE (Nom_1,Nom_2)

Donc si Nom_1 est vide, il affiche Nom_2 c'est bien ça ?

Merci à vous 2 j'en prend bonne notes :wink:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

18 juil. 2006, 23:11

Teste :D

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 65 Messages

19 juil. 2006, 22:43

Bonsoir !

J'aurais encore une question niveau syntaxe du IF, vous me dites de le mettre en SELECT, quelqu'un peut-il me dire si cette syntaxe est juste en gros :
SELECT IF Nom_1<>"" THEN Nom_1 ELSE Nom_2 FROM Table WHERE Limitation=1
J'ai consulter le guide mysql mais ce n'est pas expliquer comment l'integrer au select ^^

Merci d'avance

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

19 juil. 2006, 23:04

Cette syntaxe-là me paraît plus correcte... ;)
SELECT IF(Nom_1<>"", Nom_1, Nom_2) FROM Table WHERE Limitation=1
:arrow: http://dev.mysql.com/doc/refman/5.0/en/ ... tions.html