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 :

enregistrer des info dans une base de données a partir d'un site internet HTML


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut enregistrer des info dans une base de données a partir d'un site internet HTML
    Bonjour,
    je démarre en PHP et pour mon cours je dois initialiser une nouvelle DB à partir d'elements d'un site internet, j'ai réussi a afficher les elements sur ma page php avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $parser=new HTML_Parser(file_get_contents('MM-inventaire.html'));
    $debut = $parser->getDivPosition('node-127');
    $content = $parser->getDivContent($debut);
    echo str_replace("table1", "tableau", $content);
    mais je ne sais pas comment les enregister dans mes 3 tables de ma base de données.
    Pouvez-vous m'aider ??
    Je vais chercher les éléments en prenant une fonction qui va chercher l'id que je veux dans le code HTML

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 114
    Points : 88
    Points
    88
    Par défaut
    Bonjour,

    Pas tous compris, tu dois initialiser une base de données avec les données que tu affiches sur une page PHP. A peu près ça ?

    Quelle est ton SGDB ? MySQL ? PostGreSQL ?...Et sous quelles formes sont t'es données affichés sous PHP ? C'est un tableau de données ?

    Il nous faut plus d'informations

    Edit: SGDB MySQL vu qu'on est dans la section MySQL

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    En fait pour mon projet, mon prof veut que je récupère une liste de produit avec la marque, le prix ... dans un fichier que j'ai enregisté en HTML,
    une fois la partie intéressante de la page récupérée en php je dois mettre ces info dans 3 tables de ma base de donnée, mais je ne dois pas les enregister a la main, il faut créer une fonction qui permet d'envoyer les elements de la page HTML dans mes tables.
    Je ne sais pas si je suis très claire ...
    j'ai récupéré la liste de produits que j'ai mis dans un tableau juste pour l'afficher sur ma page, comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $parser=new HTML_Parser(file_get_contents('MM-inventaire.html'));
    $deb=$parser->getDivPosition('node-127');
    $parser->readTable($deb,$titres,$contenu);
    $table=new HTML_Tableau($contenu,$titres,'tableau');
    $table->affiche();
    Je ne vois vraiment pas comment mettre les elements dans ma DB

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 114
    Points : 88
    Points
    88
    Par défaut
    Tu as t'es tables ?

    T'es données sont dans "$contenu" et "$titre" ? Ces 2 variables doivent être t'es tableaux de données, il faut que tu les lises et que tu les enregistres dans ta base de données. Grosso modo

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    j'ai deja crée 3 tables dans ma base de donnée, mais je ne comprend pas comment créer une fonction qui permet de classer par exemple les prix dans ma table prix de ma base de données

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 114
    Points : 88
    Points
    88
    Par défaut
    C'est un tableau que tu as d'afficher sur ta page PHP ?

    Je pense, du coup toute t'es données sont dans ce tableau, il faut que tu lises ce tableau dans une boucle et pour chaque ligne du tableau il faut que tu l'enregistre dans ta base de données. Je crois que ça doit être ça. Après il faut que tu nous dise qu'elles sont les données à insérer dans ta BDD et comment est structurer ta BDD si tu veux que l'on t'aide un peu plus.

    Regarde aussi du côté de la connexion à la BDD via PHP, et des requêtes qu'il te faut pour insérer tes données dans ta BDD.

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    oui j'ai donc mis mes données dans un tableau à l'aide ce cette fonction :

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    class HTML_Tableau
    {
          private $_contenu;
          private $_titres;
          private $_class;
     
          public function __construct($contenu,$titres=null,$class=null){
            if(!is_array($contenu))
               return "<font color='red'>Erreur : HTML_Tableau doit recevoir un tableau comme paramètre 'contenu'.</font>";
     
            $this->_contenu=$contenu;
            $this->_titres=$titres;
            $this->_class=$class;
          }
          public function getHtml(){
            if($this->_class==null)
              $table="<table>\n";
            else
              $table="<table class='".$this->_class."'>\n";
            if(is_array($this->_titres)){
              $table.="<tr>\n";
              foreach($this->_titres as $titre){
                $table.="<th>".$titre."</th>\n";
              }
              $table.="</tr>\n";
            }
            foreach($this->_contenu as $lignes){
              $table.="<tr>\n";
                foreach($lignes as $element){
                  $table.="<td>".$element."</td>\n";
                }
              $table.="</tr>\n";
            }
            $table.="</table>\n";
            return $table;
          }
          public function affiche(){
            echo $this->getHtml();
          }
    }
    cela m'affiche un tableau comme ceci

    Nom : Capture d’écran 2015-01-08 à 09.45.07.png
Affichages : 1372
Taille : 55,8 Ko ( je ne sais pas si vous savez voir ? )

    J'ai dans mon PHPmyadmin une DB dans laquelle se trouve 3 tables : type, produits, marque. je dois trouver une moyen de mettre la premiere colonne de mon tableau dans la table type, la deuxieme dans produits ...

    J'essaye de me baser sur un exercice que mon prof à donné mais je ne comprend pas comment il fait donc si vous comprenez un peu mieux ce que je dois faire
    merci d'avance !!

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 114
    Points : 88
    Points
    88
    Par défaut
    Ok oui je vois mieux.

    Alors je n'ai jamais utilisé cette méthode, en passant par de l'objet mais en regardant un peu je dirais que t'es données sont stocké dans "$contenu" et "$titre". Donc tu fais une fonction qui va par exemple lire tous le contenu du tableau "$contenu". Tu fais une boucle dessus avec un "foreach" et tu regardes si ça te sort bien les données.

    Une fois que tu as les données tu rajoutes dans la boucle l'insert dans la base de données.

    Peut-être un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    foreach($contenu as $line_num => $contenu){
       echo 'Ligne $line_num : '.$contenu ;
    }
    ?>
    Après il doit peut-être y avoir meilleurs solutions ou autre méthodes...

  9. #9
    bm
    bm est déconnecté
    Membre confirmé

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Points : 556
    Points
    556
    Billets dans le blog
    6
    Par défaut
    http://www.w3schools.com/php/php_mysql_insert.asp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = "INSERT INTO MyGuests (firstname, lastname, email)
    VALUES ('John', 'Doe', 'john@example.com')";
    C'est possible de couper INSERT et d'insérer les éléments du tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql = "INSERT INTO MyGuests (firstname, lastname, email)
    VALUES "." ('".$tableauValeurs[0]."', '".$tableauValeurs[1]"', '".$tableauValeurs[2]."');"

  10. #10
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour, j'ai trouvé un moyen d'entrer mes données ... je pense que c'est une bonne piste mais cela ne m'affiche que 2 trucs dans ma table type.

    je vous montre ma démarche, je ne sais pas ce que je fais mal :/

    global $connection;
    $connection=mysqli_connect("localhost","root","root") or die(mysqli_error());
    mysqli_select_db($connection,"examen-produit");


    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    function existTypes($type)
    {
      global $connection;
      $query="SELECT id FROM types WHERE type='".addslashes($type)."'";
      $res=mysqli_query($connection,$query);
      if($res==false  || mysqli_num_rows($res)==0)return false;
      $result=mysqli_fetch_assoc($res);
      return $result['id'];
    }
     
    function addTypes($type)
    {
      if(($id=existTypes($type))!=false)return $id;
      global $connection;
      $query="INSERT INTO types (type) VALUES ('".addslashes($type)."')";
      $res=mysqli_query($connection,$query);
      $id=mysqli_insert_id($connection);
      if($res===false || $id==false)echo "<font color='red'>Erreur : addSection a échoué.<br />".mysqli_error($connection)."</font><br />";
      return $id;
    }
     
    function existMarques($marque) //idem type !!!!
    {
      global $connection;
      $query="SELECT id FROM marques WHERE marque='".addslashes($marque)."'";
      $res=mysqli_query($connection,$query);
      if($res==false  || mysqli_num_rows($res)==0)return false;
      $result=mysqli_fetch_assoc($res);
      return $result['id'];
    }
     
    function addMarques($marque)
    {
      if(($id=existMarques($marque))!=false)return $id;
      global $connection;
      $query="INSERT INTO marques (marque) VALUES ('".addslashes($marque)."')";
      $res=mysqli_query($connection,$query);
      $id=mysqli_insert_id($connection);
      if($res===false || $id==false)echo "<font color='red'>Erreur : addSection a échoué.<br />".mysqli_error($connection)."</font><br />";
      return $id;
    }
     
    function existProduits($produit,$marque,$type,$prix)
    {
      global $connection;
      $query="SELECT produit,idType,idMarque,prix FROM produits WHERE produit='".addslashes($produit)."' AND idType='".existType($type)."' AND idMarque='".existMarque($marque)."'";
      $res=mysqli_query($connection,$query);
      if($res==false  || mysqli_num_rows($res)==0)return false;
      $result=mysqli_fetch_assoc($res);
      return $result['id'];
    }
     
    function addProduits($produit,$marque,$type,$prix)
    {
      if(($id=existProduits($produit,$marque,$type,$prix))!=false)return $id;
      global $connection;
      $query="INSERT INTO produits (produit,idType,idMarque,prix) VALUES ('".addslashes($produit)."',".existType($type)." , ".existMarques($marque).",".addslashes($prix)."')";
      $res=mysqli_query($connection,$query);
      $id=mysqli_insert_id($connection);
      if($res===false || $id==false)echo "<font color='red'>Erreur : addSection a échoué.<br />".mysqli_error($connection)."</font><br />";
      return $id;
    }
     
    function getProduits()
    {
      global $connection;
      $query="SELECT P.produit as produit, T.type as type, M.marque as marque, P.prix as prix FROM produits P "; //prix dans tableau produit 
      $query.="JOIN marques M ON P.idMarque=M.id ";
      $query.="JOIN types T ON P.idType=T.id "; //joindre tableaux collonnes !! //order by ( titre collonne ordre alpha !)
      $res=mysqli_query($connection,$query);
      if($res===false || mysqli_num_rows($res)==0)return false;
      while($produit=mysqli_fetch_assoc($res))$produits[]=$produit;
      return ($produits);
    }
     
     
       foreach($contenu as $line)
        {
            addTypes($line[0]);
            addProduits($line[1],$line[0],$line[2], $line[3]);
            addMarques($line[2]);
        }
    est-ce comprehensible?
    Merci bien

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 114
    Points : 88
    Points
    88
    Par défaut
    Ca à l'air pas mal. Si tu n'as que 2 valeurs dans ta table regarde dans ton foreach ce que contient $line pour chaque passage qu'il fait.

    Fais des test, regarde ce que valent les variables et si elles sont bonnes et bien peut-être que ça vient d'ailleurs

  12. #12
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    J'ai deja vérifié le nom de mes tables et elles correspondent, une amie a fait la meme chose et chez elle cela fonctionne, c'est pour cela que je ne vois pas le problème ...

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 114
    Points : 88
    Points
    88
    Par défaut
    Et le contenu de t'es données ? Mets des "echo" de partout pour voir ce que ça donne !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    foreach($contenu as $line)
        {
            echo $line[0].'<br />';
            echo $line[1].'<br />';
            echo $line[2].'<br />';
            echo $line[3].'<br />';
            $id_Type = addTypes($line[0]);
            echo $id_Type.'<br />';;
            $id_Produit = addProduits($line[1],$line[0],$line[2], $line[3]);
            echo $id_Produi.'<br />';;
            $id_Marque = addMarques($line[2]);
            echo $id_Marque.'<br />';;
        }
    Regarde ce que valent les id et t'es echo !

    Si les données sont bonnes, essayes les requêtes directement dans ta base de données : "INSERT INTO types (type) VALUES ('".addslashes($type)."')" avec une donnée exact.

  14. #14
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    merci, je vais essayer de cette facon

Discussions similaires

  1. enregistrer des images dans une base de donnée
    Par nabil123456 dans le forum Interfaces Graphiques en Java
    Réponses: 0
    Dernier message: 22/04/2015, 12h47
  2. Enregistrer des valeurs dans une base de donnée SQL
    Par MoTaWer dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 11/05/2011, 14h16
  3. Réponses: 4
    Dernier message: 26/09/2006, 11h42
  4. Interet de mettre des fichiers dans une base de donnée
    Par Oberown dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 04/07/2005, 11h35
  5. inserer des images dans une base de données
    Par alilou04 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/06/2004, 18h54

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