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 :

Remplir une bdd avec un array


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 41
    Par défaut Remplir une bdd avec un array
    Bonjour tout le monde !

    Me revoilà pour une nouvelle question.
    Je vous présente donc la situation :
    Je possède un tableau ($tabAllService) qui à pour index différents noms de services et pour valeurs des résultats associés aux services.
    En gros mon tableau est de la forme suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php 
    $tabAllService = array(
        "Service1" => "100",
        "Service2" => "45",
        "Service3" => "0",   
    ); 
    ?>
    etc etc..

    Mon problème est le suivant : Je souhaite remplir ma BDD (la table est composée d'autant de colonne que de service soit 54 services/colonnes) avec les valeurs de mon tableau ($tabAllService).
    Je ne vois hélas pas comment faire..

    Je suis parti sur une requête de ce genre la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
     
    $requete = "INSERT INTO matable (service1,service2,service3) VALUES (' ".$tabALLService['Service1']." ',' ".$tabALLService['Service2']." ',' ".$tabALLService['Service3']." ')";
     
    ?>
    Mais hélas pas de résultat..
    J'aurai aimé avoir un petit coup de mains si possible ?
    Et également savoir s'il y avait pas une fonction/méthode pour m'éviter de taper les 54 services dans ma requête.

    Merci d'avance pour votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Fais un implode sur ton tableau $tabAllService pour construire les values de ta requête. Et n'oublies pas d'utiliser mysql_real_escape_string ou équivalent pour protéger tes données.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 41
    Par défaut
    Merci ABCIWEB de ta réponse.

    Mais en utilisant implode je génère une chaine de caractère qui contient toutes mes valeurs..
    Je ne vais donc pas pouvoir insérer une valeur par colonne dans ma table ?

    Comme je disais ma table est composée de autant de colonne que de service comme mon tableau $tabAllService donc une valeur va dans une colonne de la table etc..


    Merci pour le rappel de mysql_real_escape_string.

    EDIT:

    Peut etre en utilisant ca ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql .= " VALUES ('".implode("', '", $array)."') ";

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 41
    Par défaut
    Le problème quand j'utilise cette formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql .= " VALUES ('".implode("', '", $array)."') ";
    J'obtiens une chaine de caractère qui ressemble à ça:

    valeur1','valeur2','valeur3','valeur4

    Il me manque donc 2 '... :/

    EDIT:
    Erreur de ma part.. il ne me manque pas les deux '

    Par contre ma requête ne fonctionne toujours pas...

  5. #5
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Fais afficher ta requête echo $requete; pour voir si elle est bien construite.

    Fais aussi afficher les erreurs avec or die(mysql_error()); pour comprendre le problème.

    Tu peux aussi copier le résultat de ta requête et le copier dans une fenêtre sql de phpMyAdmin.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 41
    Par défaut
    Merci pour les conseils !
    Mon problème est réglé c'etait une erreur dans ma BDD une histoire de clé primaire.

    Un grand merci
    A bientot !

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

Discussions similaires

  1. Remplir une bdd avec des données libre de droit
    Par wyzer dans le forum Débuter
    Réponses: 0
    Dernier message: 29/06/2011, 16h31
  2. [VB.NET] Remplir une ComboBox avec une requete sql
    Par graphicsxp dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/03/2005, 15h29
  3. Réponses: 2
    Dernier message: 26/07/2004, 13h34
  4. remplir une table avec UTL_FILE.GET_LINE
    Par delphim dans le forum SQL
    Réponses: 9
    Dernier message: 12/03/2004, 10h15
  5. Déployer une BDD avec son appli
    Par Albertolino dans le forum Décisions SGBD
    Réponses: 9
    Dernier message: 11/03/2004, 18h08

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