Forum Clubic

Détection du type de champ - PHP & MySQL

bonsoir,

j’ai trouvé sur le net comment détecter un champ de type enum pour me faire des menu déroulant, mais je n’arrive pas a faire la même chose pour tester d’autre type de champ

voici déjà mon code pour les champ de type enum qui fonctionne très bien :


while($champ1 = mysqli_fetch_array($retour1))
{
	echo "<br>".$champ1["Field"]; // Affiche le nom du champ, ou nom de la colonne
	echo "<select name='val'> ";
	if(preg_match('!enum(.+)!', $champ1['Type']))
	{
		$enum1 = preg_replace('!^enum\((.+)\)$!', '$1', $champ1['Type']);
		$enum1 = str_replace("'", "", $enum1);
		$enum1 = explode(',', $enum1);
		foreach($enum1 as $nom_table)
		{
			echo "<option value=".$nom_table." id='val'>".$nom_table."</option>"; // Affiche le contenu du champ enum (listing des marques, des types ...)
		}
	}
	echo "</select>";
}

maintenant, je souhaiterais détecter des champ de type int et text, comment puis je faire ?
mais le problème (même si je trouve pas le code, j’imagine) c’est qu’il faudrait que ca rentre dans mon while
peut être faudrait il passer les conditions des type avec un switch ???

enfin voilà, je galère, j’espère que vous pourrez m’aider

Merci

Je n’ai pas tout saisi ? Donne la requête SQL jouée avant ton basar.

De plus, si tu utilises les enums de mySQL pour des marques, oublie. Ce n’est pas fait pour. Privilégie plutôt une autre table + contrainte d’intégrité.

Les enums, c’est plus pour des trucs vraiment finis comme les jours de la semaine, etc (je n’ajouterai pas les couleurs dans le lot, vu que tu peux en avoir 2^24 et bien plus).

$query = 'DESCRIBE '.$nom_table;

ca se presenterais comment ce que tu me proposes ?

j’arrive pas a me représenter la structure de la table :frowning:

En fait, faut voir ce que tu veux faire. Visiblement c’est un éditeur de table générique ?

Si oui, faudra analyser en plus les clefs étrangères associées à ta table (j’ai pas trouvé un truc précis dans la doc mySQL).
Si non, c’est mieux.