Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1531 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  récupérer les nom des champs avec pdo()

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

récupérer les nom des champs avec pdo()

n°1820100
xaviou10
Posté le 01-12-2008 à 18:16:12  profilanswer
 

Bonjour,
Je veux fabriquer mes requêtes mais j'ai besoin de récuperer les nom des champs de ma table.
Je sais que c'est possible aves mysql.
Merci


Message édité par xaviou10 le 01-12-2008 à 20:44:12

---------------
contribution open source http://www.phpclasses.org/browse/file/23687.html
mood
Publicité
Posté le 01-12-2008 à 18:16:12  profilanswer
 

n°1820125
drasche
Posté le 01-12-2008 à 18:46:34  profilanswer
 

[:rtfm]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1820157
xaviou10
Posté le 01-12-2008 à 19:46:26  profilanswer
 

RTFM
Read The Fucking Manual == lit donc le manuel ton ami
 
Je veux récuperer les nom de champ d'un table, avec pdo ou avec une requête j'ai za


---------------
contribution open source http://www.phpclasses.org/browse/file/23687.html
n°1820158
xaviou10
Posté le 01-12-2008 à 19:46:27  profilanswer
 

RTFM
Read The Fucking Manual == lit donc le manuel ton ami
 
Je veux récuperer les nom de champ d'un table, avec pdo ou avec une requête j'ai zaper la syntaxe ?
 
Je vois pas se que fous le manouel dans ton RTFM...
 
PS: désolé pour le doublon !


Message édité par xaviou10 le 01-12-2008 à 19:48:52

---------------
contribution open source http://www.phpclasses.org/browse/file/23687.html
n°1820165
skeye
Posté le 01-12-2008 à 19:59:48  profilanswer
 

describe. Et je vois pas le rapport avec pdo.


Message édité par skeye le 01-12-2008 à 20:00:09

---------------
Can't buy what I want because it's free -
n°1820179
sircam
I Like Trains
Posté le 01-12-2008 à 20:14:07  profilanswer
 


Espèce de bou... no, wait


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1820191
drasche
Posté le 01-12-2008 à 20:23:36  profilanswer
 

C'est un forum d'entraide. On répond à des questions précises. Et si tu commençait par lire un tutoriel?


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1820210
xaviou10
Posté le 01-12-2008 à 20:35:43  profilanswer
 

ce que je veux c'est faire une fonction pour fabriquer cette requête que je n'arrete pas de faire et refaire.
je donne le même nom des champs que les variables.

Code :
  1. INSERT INTO categorie
  2.    (id , nomSociete, adresseSociete, codePostalSociete, villeSociete, paysSociete,
  3.     tel_societe, fax_societe, numero_siret_societe, rcs_societe, code_ape_societe,
  4.     tva_intracommunautaire_societe, email_societe, site_societe)
  5.    VALUES
  6.    (NULL , '$nomSociete', '$adresseSociete', '$codePostalSociete', '$villeSociete', '$paysSociete', '$emailSociete'
  7.    , '$telSociete', '$faxSociete', '$numeroSiretSociete', '$rcsSociete', '$codeApeSociete', '$tvaIntraCommunautaireSociete,
  8.     '$deviseSociete');
  9.    ";


je l'avais déjà faite:

Code :
  1. // méthode
  2. public function getListeChamp($table)
  3. {
  4.  $this->sql="SHOW COLUMNS FROM $table";
  5.  //return $result;
  6.  $result=parent::select($this->sql);
  7.  foreach ($result as $field)
  8.   $champ[] = $field['Field'];
  9.  return $champ;
  10. }


et je fais:

Code :
  1. $test=$modelAdmin->getListeChamp('categorie');
  2. foreach ($test as $val) :
  3. echo 'INSERT INTO categorie '.$val.', ';
  4. endforeach;
  5. echo 'VALUES (NULL , ';
  6. foreach ($test as $val) :
  7. echo "'$_POST['".$val."''], ";
  8. endforeach;


donc dans ma boucle il faut que j'élimine la dernière virgule et j'aurra ma fonction?
PS: j'utilise la class dans ma signature.


Message édité par xaviou10 le 01-12-2008 à 20:39:49

---------------
contribution open source http://www.phpclasses.org/browse/file/23687.html
n°1820234
xaviou10
Posté le 01-12-2008 à 21:00:20  profilanswer
 

je vous met mon script au propre:

Code :
  1. $test=$modelAdmin->getListeChamp('categorie');
  2. echo 'INSERT INTO categorie (';
  3. foreach ($test as $val) :
  4.    echo ''.$val.', ';
  5. endforeach;
  6. echo ') VALUES (';
  7. foreach ($test as $val) :
  8.    if(is_int($val))
  9.       echo '$_POST[\''.$val.'\'], ';
  10.    else
  11.       echo '\'$_POST[\''.$val.'\']\', ';
  12. endforeach;
  13. echo ')';


ce qui donne bien ma requete avec la virgule de fin en trop:

Code :
  1. INSERT INTO categorie (id, nom, description, langue, dateCreation, dateModification, sousCategorie, motsCles, venteCategorie, iconeCategorie, ) VALUES ('$_POST['id']', '$_POST['nom']', '$_POST['description']', '$_POST['langue']', '$_POST['dateCreation']', '$_POST['dateModification']', '$_POST['sousCategorie']', '$_POST['motsCles']', '$_POST['venteCategorie']', '$_POST['iconeCategorie']',)


---------------
contribution open source http://www.phpclasses.org/browse/file/23687.html
n°1820297
sircam
I Like Trains
Posté le 01-12-2008 à 22:13:11  profilanswer
 


J'aurais dû voter pour toi [:romf]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
mood
Publicité
Posté le 01-12-2008 à 22:13:11  profilanswer
 

n°1820317
xaviou10
Posté le 01-12-2008 à 22:45:06  profilanswer
 

je ne sais pas de quoi tu parles mais arrête de troller s'il te plais.
Merci


---------------
contribution open source http://www.phpclasses.org/browse/file/23687.html
n°1820319
xaviou10
Posté le 01-12-2008 à 22:48:35  profilanswer
 

ma méthode fonctionne pas à cause de la récupération des variables de formulaire en $_POST

Code :
  1. // faire ue requete d'insertion dynamique
  2. public function getSqlInsert($table)
  3. {
  4.          $champs=$this->getListeChamp($table);
  5.          $sql='INSERT INTO '.$table.' (';
  6.          foreach ($champs as $val) :
  7.             if($val == 'id')
  8.                $sql.=$val;
  9.             else
  10.                $sql.=', '.$val;
  11.          endforeach;
  12.          $sql.= ') VALUES (';
  13.          foreach ($champs as $val) :
  14.             if($val == 'id')
  15.                $sql.='NULL';
  16.             else
  17.                $sql.=", '".$_POST[$val];
  18.          endforeach;
  19.          $sql.=');';
  20.          return $sql;
  21. }
 
Code :
  1. $test=$modelAdmin->getSqlInsert('categorie');
  2.    echo $test;


sa m'affiche :

Code :
  1. INSERT INTO categorie (id, nom, description, langue, dateCreation, dateModification, sousCategorie, motsCles, venteCategorie, iconeCategorie) VALUES (NULL, ', ', ', ', ', ', ', ', ');


Message édité par xaviou10 le 01-12-2008 à 22:50:23

---------------
contribution open source http://www.phpclasses.org/browse/file/23687.html
n°1820326
xaviou10
Posté le 01-12-2008 à 22:58:15  profilanswer
 

sa c'est comme la branlette, un plaisir dont personne ne peux se passer,  
ni femme ni homme...
Le monde est monde jusqu'a sa perte...


---------------
contribution open source http://www.phpclasses.org/browse/file/23687.html
n°1820329
mIRROR
Chevreuillobolchévik
Posté le 01-12-2008 à 23:03:24  profilanswer
 

bon je m ennuie un peu la
personne pour faire venir altherac ? [:parisbreizh]


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
n°1820390
xaviou10
Posté le 02-12-2008 à 01:13:34  profilanswer
 

Tou le monde sèche !


---------------
contribution open source http://www.phpclasses.org/browse/file/23687.html
n°1820392
xaviou10
Posté le 02-12-2008 à 01:25:34  profilanswer
 

sa ne fonctionne pas parce que les variables supers globals sont traité dans l'entète.
Je ne vois pas comment contourner cette difficulté !


---------------
contribution open source http://www.phpclasses.org/browse/file/23687.html
n°1820393
drasche
Posté le 02-12-2008 à 01:27:32  profilanswer
 

Est-ce que tu te rends compte que ta requête INSERT ne peut pas fonctionner?
 
(c'est pas qu'on sèche mais on s'ennuie, il est trivial ton problème)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1820397
xaviou10
Posté le 02-12-2008 à 03:45:33  profilanswer
 

c'est pour ça que je post:

Code :
  1. // faire ue requete d'insertion dynamique
  2. public function getSqlInsert($table)
  3. {
  4.          $champs=$this->getListeChamp($table);
  5.          $sql='INSERT INTO '.$table.' (';
  6.          foreach ($champs as $val) :
  7.             if($val == 'id')
  8.                $sql.=$val;
  9.             else
  10.                $sql.=', '.$val;
  11.          endforeach;
  12.          $sql.= " ) VALUES (";
  13.          foreach ($_POST as $val) :
  14.             $sql.=", '".$val."'";
  15.          endforeach;
  16.          $sql.=');';
  17.          return $sql;
  18. }


dans mon post j'ai une virgule qui fait planter ma requête.

Code :
  1. INSERT INTO info_societe (id, nomSociete, adresseSociete, codePostalSociete, villeSociete, paysSociete, telSociete, faxSociete, numeroSiretSociete, rcsSociete, codeApeSociete, tvaIntraCommunautaireSociete, emailSociete, siteSociete, deviseSociete) VALUES (, '', 'ùùùùù', 'ùùùùù', 'ù', 'ùù', 'ù', 'ù', 'ù', 'ù', 'ù', 'ù', 'ù', 'ù', 'ù', 'ùù');


tout ce passe dans un back-office, à partir de formulaire...


---------------
contribution open source http://www.phpclasses.org/browse/file/23687.html
n°1820437
drasche
Posté le 02-12-2008 à 09:48:42  profilanswer
 

Et si tu mettais des quotes autour de tes valeurs?


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1820460
drasche
Posté le 02-12-2008 à 10:15:16  profilanswer
 

Ah ouais j'en étais toujours à regarder la première version de sa requête [:joce]
 
Pis bon faire une boucle sur $_POST, c'est pas très malin quand même :o
 
(pis cette syntaxe PHP pour le foreach que je ne connaissais pas et que je trouve totozifiante)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1820465
sircam
I Like Trains
Posté le 02-12-2008 à 10:19:47  profilanswer
 

  • Le titre parle de PDO mais on en voit nulle part.
  • La question initiale : "j'ai besoin de récuperer les nom des champs" mais les queries que tu proposes sont des INSERTs.


Et à part ça, je trolle? Tu pourrais d'abord un peu mieux cibler ce que tu veux/fais et afficher les résultats intermédiaires pour y voir plus clair...


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1820467
sircam
I Like Trains
Posté le 02-12-2008 à 10:21:35  profilanswer
 

drasche a écrit :

(pis cette syntaxe PHP pour le foreach que je ne connaissais pas et que je trouve totozifiante)


C'est pas l'élection du nerd 2009 ici; d'ailleurs la présence d'un candidat dans cette cat est disqualifiante.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1820476
drasche
Posté le 02-12-2008 à 10:29:51  profilanswer
 

sircam a écrit :


C'est pas l'élection du nerd 2009 ici; d'ailleurs la présence d'un candidat dans cette cat est disqualifiante.


Elle est virtuellement finie l'élection :o


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1820630
xaviou10
Posté le 02-12-2008 à 14:11:03  profilanswer
 

Mon problème est résolu.
J'ai trouvé 7 façon de faire...
tout ce passe dans un back-office, donc pour les $_post il n'y a rien à dire.
D'autre part la syntaxe de mes boucles elle est utilisée par l'inventeur du php.
Qui considère inutile l'emploi d'un moteur de template puisque php en lui même un moteur de template.
je compte construire une classe pour générer un site à la volée à partir de formulaire de données arbitraires de l'utilisateur de ce back-office.
au cas par cas, cette façon d'insérer et modifiez les données est conviviale
pour l'internaute et permettra de lui construire une sorte de myspace personnaliser mais plus modulable.
C'est un projet.
Je vois que vous foutez de ma gueule.
Même si les lieux conviviales ne manquent pas.
Je post rarement, et sa me pousse pas à allez sur des forums.

Message cité 2 fois
Message édité par xaviou10 le 02-12-2008 à 14:18:56

---------------
contribution open source http://www.phpclasses.org/browse/file/23687.html
n°1820638
sircam
I Like Trains
Posté le 02-12-2008 à 14:24:32  profilanswer
 

xaviou10 a écrit :

sa me pousse pas à allez sur des forums.


Ni à lire un bouquin de grammaire ou de conjugaison. :jap:
 
Et bien joué de ta part pour la convivialité :
 

  • Problème résolu mais aucune indication dans le sujet du topic;
  • Aucune indication de la solution trouvée qui pourrait servir à autrui.


Nickel :jap:


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1820639
skeye
Posté le 02-12-2008 à 14:25:48  profilanswer
 

xaviou10 a écrit :


tout ce passe dans un back-office, donc pour les $_post il n'y a rien à dire.


lolilol.
 

xaviou10 a écrit :


D'autre part la syntaxe de mes boucles elle est utilisée par l'inventeur du php.
Qui considère inutile l'emploi d'un moteur de template puisque php en lui même un moteur de template.


Si le code que tu as posté est un template je me bouffe une couille.
 

xaviou10 a écrit :

Je vois que vous foutez de ma gueule.


C'est ce qui arrive quand on raconte des conneries devant des gens qui connaissent mieux le sujet.


---------------
Can't buy what I want because it's free -
n°1820646
xaviou10
Posté le 02-12-2008 à 14:30:07  profilanswer
 

il faut enlever la virgule du début.
donc je renomme la variable de la deuxième boucle.
Ce qui donne de tête:

Code :
  1. foreach ($_POST as $val) :
  2.             $sqlDonnees.=", '".$val."'";
  3.          endforeach;
  4.          $sqlDonnees=substr($sqlDonnees, 1);
  5.          $sql.=$sqlDonnees;
  6.          $sql.=');';


 
J'ai l'impression que vous avez un problème avec moi ?
Moi je m'en fou ont ne se connait pas et c'est mon deuxième post ici.
Je vous signale que vous ne m'avez servis à rien pour résoudre mon problème.
Alors niveau compétences tu devrais..., te calmer.


Message édité par xaviou10 le 02-12-2008 à 14:36:25

---------------
contribution open source http://www.phpclasses.org/browse/file/23687.html
n°1820647
drasche
Posté le 02-12-2008 à 14:30:34  profilanswer
 

skeye a écrit :


Si le code que tu as posté est un template je me bouffe une couille.
 


T'es sûr? [:petrus dei]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1820652
skeye
Posté le 02-12-2008 à 14:32:48  profilanswer
 

drasche a écrit :


T'es sûr? [:petrus dei]


certain.
Cette syntaxe sert à utiliser les structures de contrôle de php tout en passant son temps à ouvrir/fermer les tags php pour afficher du html...là il s'en sert pour construire une requête sql...[:dawao]


---------------
Can't buy what I want because it's free -
n°1820673
xaviou10
Posté le 02-12-2008 à 14:45:15  profilanswer
 

sa me permet de mieux voir mes boucles, c'est une habitude et tout aussi rapide d'après les benchs.


---------------
contribution open source http://www.phpclasses.org/browse/file/23687.html
n°1820722
skeye
Posté le 02-12-2008 à 15:48:59  profilanswer
 

xaviou10 a écrit :

sa me permet de mieux voir mes boucles, c'est une habitude et tout aussi rapide d'après les benchs.


rapide ou pas, c'est laid.
Mais bon si ça te fait plaisir...


---------------
Can't buy what I want because it's free -
n°1820726
drasche
Posté le 02-12-2008 à 15:49:57  profilanswer
 

Et donc personne ne va lui parler d'injection SQL? [:petrus75]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°1820728
skeye
Posté le 02-12-2008 à 15:51:53  profilanswer
 

drasche a écrit :

Et donc personne ne va lui parler d'injection SQL? [:petrus75]


 bah non puisque

Citation :

tout ce passe dans un back-office, donc pour les $_post il n'y a rien à dire.


 
[:dawak]
 

Spoiler :

[:psywalk]


---------------
Can't buy what I want because it's free -
n°1820730
skeye
Posté le 02-12-2008 à 15:53:08  profilanswer
 

(de toute manière il suffit d'attendre qu'il fasse un test avec une apostrophe dans un champ pour qu'il revienne demander pourquoi ça plante, hein...[:petrus75])


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
  FORUM HardWare.fr
  Programmation
  PHP

  récupérer les nom des champs avec pdo()

 

Sujets relatifs
récupérer certains champs d'un .csv[RESOLU] Requete avec la date la plus proche de today
[Résolu] Récupérer le nom des champs d'une table MySQLRécupérer avec une seule fonction champs de formulaire
[SQL] récupérer l'intitulé d'un champs[RESOLU] Recuperer des champs de formulaire "inconnus"
Récupérer tous les champs d'un formulairerecuperer noms des champs d'une requete
[Access] Recuperer tous les champs de la semaine derniere 
Plus de sujets relatifs à : récupérer les nom des champs avec pdo()


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR