begin process at 2010 02 10 04:07:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

reconnaitre le type d'un champs mysql


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

reconnaitre le type d'un champs mysql

lundi 16 mars 2009 à 20:16:31 | reconnaitre le type d'un champs mysql

Annadrill

Bonsoir,

voilà, je cherche à faire un code qui me permettrait de lister les champs d'un formulaire et d'y noter le type de champs (varchar, text....)
?pour lister les champs, ca marche, mais c'est pour trouver le type... aucune idée comment m'y prendre,
qqn aurait-il une idée?

bonne soirée :)

Annadrill
lundi 16 mars 2009 à 20:49:03 | Re : reconnaitre le type d'un champs mysql

TychoBrahe

Salut,

La base information_schema est ton amie, surtout sa table COLUMNS.
lundi 16 mars 2009 à 22:34:07 | Re : reconnaitre le type d'un champs mysql

Annadrill

Hello,

merci de cette réponse rapide !
j'ai cherché quelques infos sur information_shema et la table COLUMNS
mais je ne tombe que sur du SQL et pas sur du php,

donc je ne vois pas comment m'en servir sniff,
ce que je cherche a faire en fait, c'est une page php qui aille chercher une une table,
et qui d'apres les champs et les types de champs, crée un formulaire pour y ajouter des données.

mais comme jai des champs varchars auquels je veu ajouter un input et des champs text auquels je veux ajouter des textarea
il faut que je trouve comment reconnaitre le type de champs,
a moins que je parte dans le mauvais sens et qu'il y ait une autre manière de faire...
tu s'est ou je pourrais trouver des exemples de information_shema avec php?

salutti :)

Annadrill
mardi 17 mars 2009 à 10:03:08 | Re : reconnaitre le type d'un champs mysql

TychoBrahe

Réponse acceptée !
Salut,

En effet c'est du SQL, et sur ce point là tu ne peux pas faire autrement. Grâce a la base et la table dont je t'ai donné le nom tu peux construire une requête qui va récupérer le nom et le type des champs de ta table. Bref, ceci devrais avoir l'effet que tu recherche :

SELECT COLUMN_NAME, DATA_TYPE FROM `information_schema`.`COLUMNS` WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'nom_de_ta_table';

Pense a bien changer nom_de_ta_table par le nom de ta table. Si la table se trouve dans une autre base que celle que tu utilise actuellement, alors il te faut remplacer DATABASE() par le nom de la base de donnée.
mardi 17 mars 2009 à 10:35:08 | Re : reconnaitre le type d'un champs mysql

mike1310

Une fois les valeur récupérer, tu peux utiliser la fonction php stringgettype ( mixed$var )
mardi 17 mars 2009 à 10:36:23 | Re : reconnaitre le type d'un champs mysql

mike1310

Le lien à un peu déconner :D
 Je voulais dire la fonction gettype
mardi 17 mars 2009 à 12:33:40 | Re : reconnaitre le type d'un champs mysql

TychoBrahe

mike1310 : Certainement pas non. PHP et MySQL n'ont pas du tout les mêmes types, il est impossible de retrouver le type du champ MySQL de cette manière. De plus, si je ne me trompe pas, tous les résultats sont traités par PHP comme une chaine de caractère, rendant le gettype() complètement inutile car renvoyant toujours 'string'.
mardi 17 mars 2009 à 13:48:10 | Re : reconnaitre le type d'un champs mysql

Annadrill

re : hihi,
merci pour les réponses,

j'ai essayé ceci :
$idcom=connex('sarah','param');
  $req="SELECT COLUMN_NAME, DATA_TYPE FROM `information_schema`.`COLUMNS` WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 's_nouveaute'";
  $res=@mysql_query($req,$idcom);
  if(!$res)
  {
  echo "Lecture impossible";
  }
  else
  {
   while($ligne=mysql_fetch_array($res,MYSQL_NUM))
      {   
      echo $ligne;
   }
}

      mais cela me donne juste : Array Array Array Array Array Array Array Array Array Array


et jai testé un foreach à la place de echo $ligne

foreach($ligne as $valeur)
 {
 echo '>> '.$valeur.'<br/>';
 }

ce qui me donne un résultat mais qui me mets une fois pour $valeur, une fois le nom de la ligne, et une fois le type,

genre

>> ID
>> varchar
>> fr_meta_desc
>> tinytext


et je ne sais pas comment faire pour pouvoir récupérer par exemple $val1 qui serait égal a ID et $val2 qui serait égal a varchar ici.??

ensuite je pourrai faire un if et si c'est un type varchar écrire un input et si c'est un text ou tinytext écrire un textarea


   
Annadrill
mardi 17 mars 2009 à 17:02:41 | Re : reconnaitre le type d'un champs mysql

Annadrill

voilà, encore quelques heures à chercher... et toujours pas trouvé...

quelqu'un sait comment je peux me retrouver avec une ligne qui me sortirait : $val1 >> $val2 pour chacune des lignes ?

Annadrill
mardi 17 mars 2009 à 17:56:17 | Re : reconnaitre le type d'un champs mysql

TychoBrahe

Réponse acceptée !
Salut,

while($ligne=mysql_fetch_array($res,MYSQL_NUM))
   {   
      echo $ligne;
   }


Remplace donc par ceci :

while ($ligne = mysql_fetch_array($res))
   echo 'Le champ ', $ligne['COLUMN_NAME'], ' est de type ', $ligne['DATA_TYPE'];

1 2

Cette discussion est classée dans : mysql, type, lister, champs, reconnaitre


Répondre à ce message

Sujets en rapport avec ce message

MySQL est le type de champs SET [ par electroweb ] Bonjour à tousj'ai une table avec un champs de type SET, initialiser lors de du CREATE de la base :SET('0','0','0') avec 0 comme valeur par defaut.Mon MySQL est le type de champs SET [ par electroweb ] Bonjour à tousj'ai une table avec un champs de type SET, initialiser lors de du CREATE de la base :SET('0','0','0') avec 0 comme valeur par defaut.Mon champs mysql [ par kegi ] comment fait-on pour modifier les champs mysql ???j'ai un champs lol1 (text) je veux le changer pour lol2 qui lui sera un int... je n'ai pas trouvé nu menu deroulant dynamique en faisant des choix [ par antillais ] slt>J'ai un formulaire de saisie....la premiere partie j'aimerais faire appelle a une table...Quand l'internaute selectionne l'arrondissement et le ty Pb menu déroulant [ par fredo35m ] Bonjour,j'ai un petit soucis avec un menu déroulant. Voici mon problème :j'ai un 1er menu déroulant qui est lié avec le 2nd, jusque là tout fonctionne Chiffre avec virgule dans Bdd + calculs [ par laubro ] Bonjour,Voilà j'ai des champs de ma base devant contenir des chiffres représentant des prix, donc il y a besoin de pouvoir mettre des chiffre avec vir Ajout dans un type MySql result [ par syndrael ] Bonjour, J'ai un résultat d'une requete MySQL et je désire le transformer en tableau pour ensuite modifier ce tableau et surtout après le tirer, et en ptite question sur les les "TYPE" de champs ! [ par destiny ] Lo all Voila, jviens de remarquer que les "TYPE" VARCHAR ne prenne pas les retour à la ligne!si kelkun connait un autre "TYPE" qui les accept Merci d' champs [ par one_piece ] salut a tous!! mon pb est le suivant: je souhaite creer une base de donnée composée de 2 champs un qui servirai d'identification et un autre qui conti Suppression * au bout de x jour [ par laubro ] Bonjour,je voudrais, dans le cadre d'un site de petites annonces, donnant le choix à l'annonceur d'une durée de 1, 2 ou 3 semaines, supprimer les anno


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 24,726 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales