8796 sujets

Développement web côté serveur, CMS

Bonjour à tous. Smiley smile

Je souhaiterais vérifier qu'un champ existe bel et bien dans une table MySQL. Exemple : dans une table "member", on a les champs "id" ; "nom" ; "prenom". Je souhaiterais donc savoir si le champ" id" existe bel et bien dans la table ... oui, ça parrait inutile dit comme ça, mais je simplifie. Dans mon cas, c'est plus complexe et réellement utile.

Je précise, pour ceux qui n'auraient pas compris, que je souhaite seulement et uniquement savoir si un champ existe et non pas une valeur (ou enregistrement si vous préférez).

En espérant avoir été clair. Smiley confused
Merci d'avance,
Gaylord.P. Smiley smile
Modifié par Gaylord.P (13 Apr 2009 - 11:41)
Tu veux savoir si, non pas un champ, mais une colonne existe, si j'ai bien compris...

SHOW COLUMNS FROM table LIKE 'id'
Retournera une ligne si la colonne existe, ou rien.
Bonjour et merci d'avoir répondu.

Je n'arrive cependant pas à le mettre en œuvre. Smiley confus
Quelqu'un pourrait m'aider ? Merci d'avance. Smiley smile
Salut,

ben tout simplement Smiley cligne :
<?php
$champ = 'id';
$sql= "SHOW COLUMNS FROM table LIKE '$champ'";
$result = mysql_query($sql);
if(mysql_num_rows($result) > 0) {
	echo "Le champ $champ existe.";
} else {
	echo "Le champ $champ n'existe pas.";
}
?>

Modifié par Heyoan (11 Apr 2009 - 16:56)
C'est bien ce que je pensais, merci beaucoup. Ca ne fonctionne cependant pas avec ce code :


	$table = 'widjoo_users';
	$column = 'id';
    $query = 'SHOW COLUMNS FROM "'.$table.'" LIKE "'.$column.'"';
	$result = mysql_query($query);
		if(mysql_num_rows($result) > 0) {
			echo "Le champ $column existe.";
		} else {
			echo "Le champ $column n'existe pas.";
		}


Ce petit bout de code me renvoie que le champ "id" n'existe pas, alors qu'il existe bel et bien. Quelqu'un aurait-il une solution ? Smiley confus
Re',

si tu avais rajouté or die(mysql_error()); tu aurais vu que ta syntaxe n'est pas bonne. Smiley cligne

Essaies plutôt
$table = 'widjoo_users';
$column = 'id';
$query = "SHOW COLUMNS FROM $table LIKE '$column'";
$result = mysql_query($query) or die(mysql_error());
if(mysql_num_rows($result) > 0) {
	echo "Le champ $column existe.";
} else {
	echo "Le champ $column n'existe pas.";
}
Ah oui, effectivement ... habituellement je mets "mysql_error" mais là j'ai testé rapidement. Smiley confus

Merci beaucoup (encore une fois) pour ton aide. Smiley smile