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 :

Insérer un table HTML dans MySql avec PHP


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 112
    Par défaut Insérer un table HTML dans MySql avec PHP
    Bonsoir,

    premièrement je suis désolé si mon sujet semble banale.

    Donc, j'ai un tableau rempli a partir de MySql, ce que je veut faire c'est de inverser l'opération et enregistrer mon tableau dans la base avec un clic sur bouton notant que les colonnes du tableau varient en nombre, parfois le tableau contient 8 colonnes en max et 3 colonnes en min, je veut donc insérer dans la base le tableau avec les colonnes qui y contient.

    ce qui me bloque c'est comment récupérer le tableau du ajax dans une autre page PHP dans laquelle je vais exécuter ma requête d'insertion


    Fichier : newSeg.php
    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
     
     
    <form name="userTable" id="table">
                    <input type="text" data-type="search" id="filterable-input">
                    <table  id="table" data-role="table" data-mode="columntoggle" class="ui-responsive table-stroke" data-filter="true" data-input="#filterable-input" class="table table-striped table-bordered table-hover">
                      <thead>
                        <tr>
                          <th id="Nom" name="nom[]">Nom</th>
                          <th id="Prénom" name="prenom[]">Prénom</th>
                          <th data-priority="5" id="Mail[]">Mail</th>
                          <th data-priority="5" id="Pays[]">Pays</th>
                          <th data-priority="5" id="Civilité[]">Civilité</th>
                          <th data-priority="5" id="Naissance[]">Naissance</th>
                          <th data-priority="5" id="Inscription[]">Inscription</th>
                          <th data-priority="5" id="Profession[]">Profession</th>
     
                        </tr>    
                      </thead>
     
                      <tbody>
                       <?php
                       for ($i=0;$i<count($u);$i++)      
                       {
                        ?> 
                        <tr>
                          <td><?php  print $u[$i]->get_nom();?></td>
                          <td><?php  print $u[$i]->get_prenom();?></td>
                          <td><?php  print $u[$i]->get_email();?></td>
                          <td><?php  print $u[$i]->get_pays();?></td>
                          <td><?php  print $u[$i]->get_civilite();?></td>
                          <td><?php  print $u[$i]->get_date_n();?></td>
                          <td><?php  print $u[$i]->get_date_ins();?></td>
                          <td><?php  print $u[$i]->get_profession(); ?></td>
                        </tr>
                        <?php  }  ?>
                        <tr><td><button type="button" class="btn btn-success" id="save">Enregistrer</button></td></tr>
                        <input type="text" name="SegmentName" placeholder="nom du segment" width="50px">
                      </tbody> 
                    </table>
     
                  </form> 
     
    <script>
    $(document).ready(function(){
      $('#save').click(function(){
          var rowsArray = {};
          var i = 0;
          $('#table tr').each(function({
          rowsArray[i] = $(this).val(); // if you want to save the values of each row
          i++;
          $.ajax({
         url: "SaveSegment.php",
         method: "POST",
         //data:$('#userTable').serialize(),
         data: { myarray : rowsArray },
         success: function(result) {  
          alert(data)
         $('#result').html(data);
                                  }
                  });
                                      });
     
                                    });
     
                                  });
     
    </script>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Étant donné que ton tableau vient déjà de la base de données, pourquoi veux-tu l'y remettre ?

    Au passage, je ne crois pas que "[]" dans l'id d'une balise HTML ce soit très réglementaire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 112
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Étant donné que ton tableau vient déjà de la base de données, pourquoi veux-tu l'y remettre ?
    je fait une sorte de segmentation, le premier tableau m'affiche tous les users que j'ai dans la base, je doit choisir les critères de la segmentation qui sont les colonnes du tableau et puis je vais insérer les users récupérer après la segmentation dans ma base

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    De quelle manière est fait la selection ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 112
    Par défaut
    Citation Envoyé par sabotage Voir le message
    De quelle manière est fait la selection ?
    si j'ai bien compris votre question, vous parlez de la sélection des critères de la segmentation non ?
    si c'est le cas, c'est un plugin jQuery qui me permet de cocher les colonnes que je veut afficher dans mon tableau

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    D'accord, ton problème doit être traité en jquery alors, pas en PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 112
    Par défaut
    Citation Envoyé par sabotage Voir le message
    D'accord, ton problème doit être traité en jquery alors, pas en PHP.
    c'est ça ce que j'ai fait ici (j'espère que c'est correcte)

    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
     
     
    <script>
    $(document).ready(function(){
      $('#save').click(function(){
          var rowsArray = {};
          var i = 0;
          $('#table tr').each(function({
          rowsArray[i] = $(this).val();
          i++;
          $.ajax({
         url: "SaveSegment.php",
         method: "POST",
         //data:$('#userTable').serialize(),
         data: { myarray : rowsArray },
         success: function(result) {  
          alert(data)
         $('#result').html(data);
                                  }
                  });
                                      });
     
                                    });
     
                                  });
     
    </script>

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il vaudrait mieux poser ta question entière dans le forum jQuery.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 112
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Il vaudrait mieux poser ta question entière dans le forum jQuery.
    merci pour votre réponse

    j'ai opté sur une autre approche est c'est fixer le nombre des colonnes.

    maintenant, j'arrive a récupérer les données du tableau et les affichées dans la console, mais je n'arrive pas a les récupérées dans ma page PHP ou je vais les traitées pour l'insertion dans la base

    j'ai fait les modifications suivantes dans mon code

    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
     
    <script>
     
    $("#submit").on('click',function(){
     
       var arrData=[];
       // loop over each table row (tr)
       $("#table tr").each(function(){
            var currentRow=$(this);
     
            var nom_value=currentRow.find("td:eq(0)").html();
            var prenom_value=currentRow.find("td:eq(1)").text();
            var email_value=currentRow.find("td:eq(2)").text();
            var pays_value=currentRow.find("td:eq(3)").text();
            var civilite_value=currentRow.find("td:eq(4)").text();
     
             var obj={};
            obj.anom=nom_value;
            obj.bprenom=prenom_value;
            obj.cemail=email_value;
            obj.dpays=pays_value;
            obj.ecivilite=civilite_value;
     
            arrData.push(obj);
       });
     
        console.log(arrData);
     
        $.ajax({
       url: "SaveSegment.php",
       method: "POST",
       data: { arrData : arrData },
       success: function(data) //
       {
          alert(data);    
         $('#result').html(data);
       }
    });
     
    });
    </script>
    SaveSegment.php

    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
     
    <?php
     
    //SaveSegment.php 
     $connect = mysqli_connect("localhost", "root", "", "mailing"); 
    //$number =count($_POST["nom[]"]);
     
      if(isset($_POST["arrData"])) 
     { 
          if($_POST["arrData"] != '') {
     
                $sql = "INSERT INTO `segmentname`(`nom`, `prenom`,`email`, `pays`,`civilite`) VALUES ('".$_POST["arrData"]."','".$_POST["arrData"]."','".$_POST["arrData"]."','".$_POST["arrData"]."',,'".$_POST["arrData"]."',)";
            }
                          $result = mysqli_query($connect, $sql);
                          echo"date inserted succesfully";
                          //echo $_POST["arrData"];
     
     
      }
      else  echo "fail";
     
     
        ?>

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Qu'obtiens-tu ?
    Un erreur ?
    Est-ce que tu as contrôlé ton $_POST ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 112
    Par défaut
    j'arrive a récupérer toutes les données du tableau dans un array que je l'affiche sous la console du navigateur, mais lorsque je le passe en ajax pour envoyer l'array dans ma page PHP ou j'effectue l'insertion et après que je vérifie $_POST j'obtient le message fail directement

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Est-ce que tu as contrôlé ton $_POST ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 112
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Est-ce que tu as contrôlé ton $_POST ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (isset ( $_POST [ "arrData" ]))
    {
    if( $_POST [ "arrData" ] != '' )
    { //requête d'insertion
    }
    }

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Certes mais il faut debuguer et regader ce que contient réellement ton POST
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 112
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Certes mais il faut debuguer et regader ce que contient réellement ton POST
    j'ai essayer votre solution est ça ce que je retient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    array (size=0)
      empty

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ca signifie que ton Ajax ne renvoit rien.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 112
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Ca signifie que ton Ajax ne renvoit rien.
    aprés votre proposition d'essayer avec j'ai essayer avec et comme ça mon array n'est plus vide mais le problème reste en PHP, je reçoit directement j'ai modifié mon code de cette façon mais le problème persiste

    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
    <?php
     
    //SaveSegment.php  
     $connect = mysqli_connect("localhost", "root", "", "mailing");  
     
    //$number =count($_POST["nom[]"]);
     var_dump($_GET);
     
      if(isset($_GET["arrData"]))  
     {  
          if($_GET["arrData"] != '') {
     
          		$sql = "INSERT INTO `segmentname`(`nom`, `prenom`,`email`, `pays`,`civilite`) VALUES ('".$_GET["arrData"]."','".$_GET["arrData"]."','".$_GET["arrData"]."','".$_GET["arrData"]."',,'".$_GET["arrData"]."',)";
          	}
          				  $result = mysqli_query($connect, $sql);
     
          				  if($result) {
          				  	echo "succesfully inserted";
          				  }
          				  	else echo"insertion failed";
          				  //echo"date inserted succesfully";
          				  //$tab = json_decode($_GET['arrData'], true);
     
     
     
      }
      else  echo "fail";
     
     
    	?>

  18. #18
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ton Ajax envoie les données en POST ou en GET ?
    Ca n'est pas au hasard hein.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  19. #19
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 112
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Ton Ajax envoie les données en POST ou en GET ?
    Ca n'est pas au hasard hein.
    C'est ça qui m'étonne, c'est le même résultat si j'envoie les données avec POST ou avec GET
    je reçoit toujours les mêmes résultats :
    - tous les données s'affichent sous la console.
    Nom : ScreenShot_20161106181229.png
Affichages : 112
Taille : 5,7 Ko
    - les message "insertion failed" s'affiche toujours.

    mon code ajax
    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
    <script>
     
    $("#submit").on('click',function(){
     
       var arrData=[];
       // loop over each table row (tr)
       $("#table tr").each(function(){
            var currentRow=$(this);
     
            var nom_value=currentRow.find("td:eq(0)").html();
            var prenom_value=currentRow.find("td:eq(1)").text();
            var email_value=currentRow.find("td:eq(2)").text();
            var pays_value=currentRow.find("td:eq(3)").text();
            var civilite_value=currentRow.find("td:eq(4)").text();
     
             var obj={};
            obj.anom=nom_value;
            obj.bprenom=prenom_value;
            obj.cemail=email_value;
            obj.dpays=pays_value;
            obj.ecivilite=civilite_value;
     
            arrData.push(obj);
       });
     
        console.log(arrData);
     
        $.ajax({
       url: "SaveSegment.php",
       method: "POST",
       data: { arrData : JSON.stringify(arrData) },
       success: function(data) //
       {
          //alert(data);     
         $('#result').html(data);
       }
    });
     
    });
    </script>

  20. #20
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Comme je t'ai dit, si tu n'arrives pas a envoyer les données avec jquery, il vaut mieux poser ta question sur le forum jquery.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [MySQL] les images dans mysql avec Php
    Par kitcarson23 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/01/2011, 01h02
  2. Insérer un tableau html dans le code php
    Par paolo129 dans le forum Langage
    Réponses: 3
    Dernier message: 06/03/2009, 08h50
  3. insérer une page html dans un code php
    Par darckangel01 dans le forum Langage
    Réponses: 5
    Dernier message: 20/12/2008, 11h28
  4. [MySQL] Insérer un vecteur dans MySQL avec PHP
    Par fAdoua123 dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 21/02/2008, 17h50
  5. [FLASH MX2004] Balises HTML dans mysql et PHP
    Par Garra dans le forum Flash
    Réponses: 3
    Dernier message: 06/04/2006, 11h46

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