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

Langage PHP Discussion :

[POO] insérer dans une db


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut [POO] insérer dans une db
    Salut tout le monde

    je débute en POO et jaimerai savoir comment faire une fonction qui se trouve dans une class, qui permettrai d'insérer des données dans une base de donnée ? jai deja penser qu'il faudrai passer en paramètre le nom de la table mais après je ne sais pas comment faire pour remplir le value() parce qu'en fonction de ma table, les champs ne sont pas les meme evidemment...

    voila ce que jai pour le moment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class actionDB{
     
    	function ajoutDonne($table){
    		$liaisonDB = new liaisonDB();
    		$liaisonDB -> connexiondb();
     
    		$reponse = mysql_query("INSERT INTO ".$table."(??????)");
     
    		}
    	}
    merci de me dire si cest possible

  2. #2
    Expert confirmé
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Par défaut
    Tu pourrais utiliser un tableau associatif en paramètre.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $tab['champ1'] = val1;
    $tab['champ2'] = val2;
    $tab['champ3'] = val3;
    et dans ta fonction, tu fais : (je suis pas sur de la syntaxe..a verifier)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    foreach($tab as $cle => $val){
     $champs.=$cle.",";
     $valeurs.=$val.",";
    }
    $req = "INSERT INTO $table($champs) VALUES ($valeurs)";

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut
    merci bîen mais ou fais-je ce tableau ??? je ne comprend pas ce que je dois mettre dedant...

    tu veux que je mette les valeur de mon formulaire dans le tableau ???

  4. #4
    Expert confirmé
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Par défaut
    Tu créé ton tableau avant l'appel de ta fonction.
    Tu appelles ta fonction avec comme paramètre le nom de ta table et ton tableau associatif.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $tab['champ1']='val1';
    $tab['champ2']='val2';
    $tab['champ3']='val3';
    ajoutDonnee("matable",$tab);
    La requete générée sera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO matable(champ1,champ2,champ3) VALUES(val1,val2,val3)
    Tu génère ton tableau associatif comme tu veux (avec n'importe quel champ). Ta fonction est une fonction générique..

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par raptor70
    Tu créé ton tableau avant l'appel de ta fonction.
    Tu appelles ta fonction avec comme paramètre le nom de ta table et ton tableau associatif.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $tab['champ1']='val1';
    $tab['champ2']='val2';
    $tab['champ3']='val3';
    ajoutDonnee("matable",$tab);
    La requete générée sera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO matable(champ1,champ2,champ3) VALUES(val1,val2,val3)
    Tu génère ton tableau associatif comme tu veux (avec n'importe quel champ). Ta fonction est une fonction générique..
    Avec l'exemple ci-dessus, assorti à ton bout de code, tu as une fonction classique, ça ne nécessite à aucun moment de l'orienté objet.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut
    je ne suis pas sur d'avoir fait juste... voila comment jai fais.

    voici ma methode ce trouvant dans une class :

    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
    class actionDB{
     
    	function ajoutDonne($table){
    		$liaisonDB = new liaisonDB();
    		$liaisonDB -> connexiondb();
     
    		foreach($tab as $cle => $val){
     			$champs.=$cle.",";
     			$valeurs.=$val.",";
    		}
     
    		$req = "INSERT INTO $table($champs) VALUES ($valeurs)";
     
    		}
    	}
    et voila la déclaration de mon tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $tab[$_POST['pseudo']] = 'val1';
    	$tab[$_POST['mdp']] = 'val2';
     
    	$objet = new actionDB();
    	$insererUtilisateur = $objet -> ajoutDonne('tbl_utilisateur', $tab);
    il me met cette erreur au moment de l'enregistrement :

    Warning: Invalid argument supplied for foreach() in C:\wamp\www\petites-annonces\brain.php on line 31

  7. #7
    Invité
    Invité(e)
    Par défaut
    Salut,

    Si tu débutes en OO, il faut que tu utilises le bon vocabulaire... On ne parle jamais de fonctions en OO, mais de méthodes.

    Concernant ta classe, le problème se situe déjà à la conception. Dans ton exemple, on pourrait croire tu cherches à faire un fonction dans une classe, à moins qu'il s'agisse d'une méthode statique, ton raisonnement n'est pas bon...

    Je sais c'est purement théorique... Mais bon, je pense pas qu'il soit utile et prudent de se lancer dans d'autres explications étant donné qu'il te manque vraissemblablement certaines notions fondamentales...

    Bye

Discussions similaires

  1. [POO] types d'attributs // pour insérer dans une BD
    Par No3l_tek dans le forum Langage
    Réponses: 3
    Dernier message: 07/05/2008, 14h08
  2. Réponses: 3
    Dernier message: 23/04/2006, 12h14
  3. [VBA] Calcul pour insérer dans une textebox
    Par Yanmeunier dans le forum IHM
    Réponses: 13
    Dernier message: 15/03/2006, 16h38
  4. Réponses: 5
    Dernier message: 19/04/2005, 09h46
  5. Insérer dans une Vue ordonnée
    Par biroule dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/09/2004, 15h27

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