IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

automatiser l'insertion de donnée [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut automatiser l'insertion de donnée
    Bonjour,
    je souhaite automatiser l'insertion de requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    	public function setRequeteInsertion($table, $valeur)
    	{
    		$nombreChamp = count($valeur);
    		$champVirgule='';
    		$valeurVirgule='';
    		if(!$table || !is_array($valeur) || $nombreChamp == 0) return '';
    		foreach($valeur as $champ => $val)
    		{
    			if($nombreChamp < 2)
    				$champVirgule.=$champ;
    			else if($nombreChamp > 1)
    			{
    				$champVirgule.=', '.$champ;
    			}
    		}
    		foreach($valeur as $val)
    		{
    			if(($nombreChamp == 1) && is_int($val))
    				$valeurChamp.=$val;
    			else if($nombreChamp == 1 && !is_int($val))
    				$valeurChamp.="'".$val."'";
    			else if($nombreChamp > 1 && is_int($val))
    				$valeurChamp.=', '.$val;
    			else
    				$valeurChamp.=", '".$val."'";
    		}
    		$requete="INSERT INTO $table ($champVirgule) VALUES ($valeurChamp);";
    		return $requete;
    	}
    ce qui donne pour afficher la requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $modelAdmin = new ModelAdmin();
    $table='produits';
    $valeur=array('prix' => '23', 'nom' => 'MMMMMM', 'description' => 'mmmmmmmmmm');
    echo $modelAdmin->setRequeteInsertion($table, $valeur);
    Mais j'ai un problème de virgule.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO produits (, prix, nom, description) VALUES (, '23', 'MMMMMM', 'mmmmmmmmmm');
    Je galère...
    Merci

  2. #2
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut
    par contre j'essaie strstr pour segementer la chaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $champ = strstr($champVirgule, ', ');
    $requete="INSERT INTO $table (".$champ.") VALUES ($valeurVirgule);";
    Mais ma requete ne bouge pas, peut être parce qu'il y a plusieurs virgules ?

  3. #3
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut
    j'ai trouvé dans la faq
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		$champ = substr($champVirgule, 1);
    		$valeur = substr($champVirgule, 1);
    		$requete="INSERT INTO $table (".$champ.") VALUES ($valeur);";

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [9.3] Automatiser l'insertion de données
    Par MissTi dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 19/01/2015, 10h29
  2. automatiser l'insertion de données dans une bd
    Par matterazzo dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 24/10/2005, 01h06
  3. [Interbase 7] Problème d'insertion de données
    Par Tuscelan dans le forum InterBase
    Réponses: 12
    Dernier message: 19/11/2003, 22h58
  4. insertion de données
    Par m-l dans le forum SQL
    Réponses: 9
    Dernier message: 25/07/2003, 13h59
  5. [Postgresql] pb lors d'insertion de données
    Par bob20000 dans le forum Requêtes
    Réponses: 8
    Dernier message: 04/11/2002, 15h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo