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 tous les élements? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Par défaut insérer tous les élements?
    Bonjour,

    J'ai un formulaire qui récupère des données (env. 1000), avec le code actuel, le form récupère bien les données mais pour les insérer dans la base mysql, je dois cliquer sur "envoyer" 1 par 1 :-( mon problème est que je voudrais tous envoyer en même temps.

    Voici 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
     
     
    <? $rep = "app/a/";
    $dir = opendir($rep);
     
    function dd($date) {
       return date("d/m/Y H:i:s",$date);
    }
     
    while ($f = readdir($dir)) {
       if(is_file($rep.$f)) {
    ?>	   
    <html>
    <form method="POST" action="add.php">
    <center>
    <input type="text" name="nom" size="20" value="<? echo "".$f; ?>" maxlength="35">
    <input type="text" name="poids" size="20" value="<? echo "".filesize($rep.$f); ?>" maxlength="70"> 
    <input type="text" name="date" size="20" value="<? echo "".dd(filemtime($rep.$f)); ?>" maxlength="70">
    <input type="submit" value="Envoyer" name="envoyer">
    </center>
    </form>
    </html> 
    <?
    }
    }
     
    closedir($dir); ?>
    Merci d'avance de votre aide

  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
    Ne fait qu'un seul formulaire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Par défaut
    oui mais je vois pas comment m'y prendre malheureusement

  4. #4
    Membre chevronné
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Par défaut
    tu mets TOUTES tes données dans le même formulaire, avec une boucle, et un seul <submit>

    En clair, tu remontes ta balise <form> au dessus de ta boucle "while".

    Dit autrement, tu mets ta boucle while DANS ton formulaire.

  5. #5
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    ne pas oublier de mettre des [] devant les names
    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
    <? $rep = "app/a/";
    $dir = opendir($rep);
     
    function dd($date) {
       return date("d/m/Y H:i:s",$date);
    }
     
    
    ?>	   
    <html>
    <form method="POST" action="add.php">
    <center>
    
    <?php
    while ($f = readdir($dir)) {
       if(is_file($rep.$f)) {
    ?>
    <input type="text" name="nom[]" size="20" value="<? echo "".$f; ?>" maxlength="35">
    <input type="text" name="poids[]" size="20" value="<? echo "".filesize($rep.$f); ?>" maxlength="70"> 
    <input type="text" name="date[]" size="20" value="<? echo "".dd(filemtime($rep.$f)); ?>" maxlength="70">
    <?php
    }
    }
     
    ?>
    <input type="submit" value="Envoyer" name="envoyer">
    </center>
    </form>
    </html> 
    <?
    
    closedir($dir); ?>

    dans ta page add.php tu te retrouve avec trois tableaux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $date=$_POST['date'];
    $nom=$_POST['nom'];
    $poids=$_POST['poids'];
    //tu peut faire une boucle pour récupérer tout ce qui a été envoyé
    for($î;$i<count($nom);$i++){
    echo $nom[$i]." ".$date[$i]." ".$poids[$i];
    }

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Par défaut
    Citation Envoyé par nsanabi Voir le message
    ne pas oublier de mettre des [] devant les names
    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
    <? $rep = "app/a/";
    $dir = opendir($rep);
     
    function dd($date) {
       return date("d/m/Y H:i:s",$date);
    }
     
    
    ?>	   
    <html>
    <form method="POST" action="add.php">
    <center>
    
    <?php
    while ($f = readdir($dir)) {
       if(is_file($rep.$f)) {
    ?>
    <input type="text" name="nom[]" size="20" value="<? echo "".$f; ?>" maxlength="35">
    <input type="text" name="poids[]" size="20" value="<? echo "".filesize($rep.$f); ?>" maxlength="70"> 
    <input type="text" name="date[]" size="20" value="<? echo "".dd(filemtime($rep.$f)); ?>" maxlength="70">
    <?php
    }
    }
     
    ?>
    <input type="submit" value="Envoyer" name="envoyer">
    </center>
    </form>
    </html> 
    <?
    
    closedir($dir); ?>

    dans ta page add.php tu te retrouve avec trois tableaux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $date=$_POST['date'];
    $nom=$_POST['nom'];
    $poids=$_POST['poids'];
    //tu peut faire une boucle pour récupérer tout ce qui a été envoyé
    for($î;$i<count($nom);$i++){
    echo $nom[$i]." ".$date[$i]." ".$poids[$i];
    }
    Merci pour l'aide malheureusement a part avoir un array dans ma bdd j'ai rien :-(

    je dois me rater dans l'insert

  7. #7
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    Citation Envoyé par patickg Voir le message
    Merci pour l'aide malheureusement a part avoir un array dans ma bdd j'ai rien :-(

    je dois me rater dans l'insert
    si tu peut montrer ton code

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Par défaut
    Fichier add.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
     
    <?php
     
    if(isset($_POST['nom']))      $nom=$_POST['nom'];
    else      $nom="";
     
    if(isset($_POST['poids']))      $poids=$_POST['poids'];
    else      $poids="";
     
    if(isset($_POST['date']))      $date=$_POST['date'];
    else      $date="";
     
     
    if(empty($nom) OR empty($poids) OR empty($date))
        {
        echo "<font color='red'>ok</font>";
        }
    else     
        {
        $db = mysql_connect('localhost', '*', '*'); 
        mysql_select_db('*',$db);                 
     
        $sql = "SELECT id FROM app WHERE nom='$nom'";
        $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
     
        $res = mysql_num_rows($req);
     
        if($res!=0) 
            {
            echo '<font color="red">Désolé, mais cette URL existe déjà dans notre base.</font>';
            }
        else  
            {   
            $sql = "INSERT INTO app(id, nom, poids, date) VALUES('','$nom','$poids','$date')";
            mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
     
            echo 'Vos infos on été ajoutées.';
            }
        mysql_close();  
        } 
    ?>
    Merci

  9. #9
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    je suppose que tu as suivi mes indications en envoyant des tableaux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="text" name="nom[]" size="20" ....
    alors tes variables $nom $poid et $date sont des tableaux, modifier ton code pour avoir quelque chose de semblable à :

    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
    $db = mysql_connect('localhost', '*', '*'); 
    mysql_select_db('*',$db); 
    
    for($î;$i<count($nom);$i++){
    $sql = "SELECT id FROM app WHERE nom='".$nom[$i]."'";
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    
    $res = mysql_num_rows($req);
    
    if($res!=0) 
    {
    echo '<font color="red">Désolé, mais cette URL existe déjà dans notre base.</font>';
    }
    else 
    { 
    $sql = "INSERT INTO app(id, nom, poids, date) VALUES('','".$nom[$i]."','".$poids[$i]."','".$date[$i]."')";
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
    
    echo 'Vos infos on été ajoutées.';
    }
    }

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Par défaut
    Oui j'ai suivi les conseils à la lettre mais toujours des arrays :-(

    aie aie aie j'y comprends rien

    ps: j'ai bien réctifier le code

  11. #11
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    balance le code de tes deux fichiers, on verra bien ce qui cloche dedans

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Par défaut
    Page du form :

    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
     
    <? $rep = "app/a/";
    $dir = opendir($rep);
     
    function dd($date) {
       return date("d/m/Y H:i:s",$date);
    }
     
     
    ?>	   
    <html>
    <form method="POST" action="add.php">
    <center>
     
    <?php
    while ($f = readdir($dir)) {
       if(is_file($rep.$f)) {
    ?>
    <input type="text" name="nom[]" size="20" value="<? echo "".$f; ?>" maxlength="35">
    <input type="text" name="poids[]" size="20" value="<? echo "".filesize($rep.$f); ?>" maxlength="70"> 
    <input type="text" name="date[]" size="20" value="<? echo "".dd(filemtime($rep.$f)); ?>" maxlength="70">
    <?php
    }
    }
     
    ?>
    <input type="submit" value="Envoyer" name="envoyer">
    </center>
    </form>
    </html> 
    <?
     
    closedir($dir); ?>
    Page add.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
     
     
    <?php
     
        $db = mysql_connect('localhost', '*', '*'); 
        mysql_select_db('*',$db);                 
     
    for($î;$i<count($nom);$i++){
     
        $sql = "SELECT id FROM app WHERE nom='$nom'";
        $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
     
        $res = mysql_num_rows($req);
     
            $sql = "INSERT INTO app(id, nom, poids, date) VALUES('','$nom','$poids','$date')";
            mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
     
            echo 'Vos infos on été ajoutées.';
    }
     
    ?>
    Voilà

  13. #13
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    premierement dans ton 2eme fichier tu ne recupere pas les valeurs de ton formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $nom=$_POST['nom'];
    $poids=$_POST['poids'];
    $date=$_POST['date'];
    puis dans ta boucle il faut les utiliser en tan que tableau.
    Le code de ton fichier add.php devra ressembler à:

    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
    <?php
     
        $db = mysql_connect('localhost', '*', '*'); 
        mysql_select_db('*',$db);      
    
    if (!isset($_POST['nom'])) exit(); //à toi d'ajouter les vérifications que tu souhaitera
    
    $nom=$_POST['nom'];
    $poids=$_POST['poids'];
    $date=$_POST['date'];
    for($î;$i<count($nom);$i++){
     
        $sql = "SELECT id FROM app WHERE nom='."$nom[$i]."'"; //je l'ai pourtant déjà mis sur une solution plus haut
        $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
        
        $res = mysql_num_rows($req);
     
            $sql = "INSERT INTO app(id, nom, poids, date) VALUES('','".$nom[$i]."','".$poids[$i]."','".$date[$i]."')";//ça aussi il est sur mon post en haut
            mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
            
            echo 'Vos infos on été ajoutées.';
    }
        
    ?>

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 14
    Par défaut
    merci ca marche nickel je n'ai pas mis le bon code app.php avec les modifs que tu m'avais données...

    Sur se que tu m'avais donné, j'avais commis une erreur de code :-(

    merci beaucoup pour l'aide

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/01/2012, 15h16
  2. Réponses: 1
    Dernier message: 25/05/2011, 07h16
  3. [MooTools] Supprimer tous les élements ayant une classe pre définie
    Par SgtBor dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 29/01/2011, 22h20
  4. Vérifier que tous les élements fils sont valables
    Par Grantoumaigr dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 23/05/2008, 08h57
  5. lister tous les élements d'un Composite ?
    Par bitbis dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 28/06/2007, 10h07

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