SELECT !id FROM table ?

Invité
Invité n'ayant pas de compte PHPfrance

21 mars 2007, 13:06

Bonjour,

Comment faire pour récuperer tous les champs d'une table à l'exception de certains champs ?

Faire une sorte de SELECT !id FROM table

Une idée ?

ViPHP
ViPHP | 3607 Messages

21 mars 2007, 13:13

Simplement en listant tout les autres... :roll:

Invité
Invité n'ayant pas de compte PHPfrance

22 mars 2007, 09:49

l'idée est justement de ne pas être obligé de lister tous les champs de la table ... question de lisibilité de code et d'évolutivité.

Mammouth du PHP | 19672 Messages

22 mars 2007, 09:55

Malheureusement, cette option n'est pas disponible : soit tu récupères les champs listés (SELECT champ1, champ2, ..., champn), soit tu récupères tout (SELECT * ... à éviter), mais tu ne peux pas faire autrement.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

22 mars 2007, 12:55

l'idée est justement de ne pas être obligé de lister tous les champs de la table ... question de lisibilité de code et d'évolutivité.
Il est à mon sens beaucoup plus lisible et maintenable de lister les champs dont on a besoin que ceux que l'on ne souhaite pas utiliser... le select * est d'ailleurs selon moi à proscrire, dans la mesure ou on ne sait absolument pas ce qu'il retourne ni dans quel ordre.

Ca fait un peu plus de code à écrire, c'est vrai et il faudra effectivement modifier la requête si l'on ajoute ou enlève un champ, mais dans la mesure ou tout le reste du code sera modifié également, on est pas vraiment à ça pret ;). Alors qu'en revanche, si quelqu'un utilise un mysql_fetch_row() sur ta requête et que tu ajoutes un champ au milieu de ta table, toute son indexation est à refaire...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...