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 :

récupérer des données formulaires pour les insérer dans une BD


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2016
    Messages : 24
    Points : 5
    Points
    5
    Par défaut récupérer des données formulaires pour les insérer dans une BD
    bonjour voilà comme l'indique le titre je veux récupérer les données de ce formulaires pour l'insérer dans ma BD
    un petit aperçu du formulaire

    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
    <form method="post" action="fichepret.php"
    enctype="multipart/form-data">
    <table border="0" cellpadding="0" cellspacing="0"  id="id-form">
    		<tr>
    		<th valign="top">Nom Materiel(s):</th>
    		<?php
        // Récupération de paramètres passés par la méthode GET
        // avec PHP>=4.1
        // $_GET["loisirs"] contient un tableau de valeurs
       if(isset($_GET['id_materiel'])){ $loisirs = $_GET["id_materiel"];
     
        echo "<b> </b><br />";
        for ($i=0; $i<count($loisirs); $i++) {
             echo "<br />"; 
       }}
    ?><?php if(isset($_GET['id_materiel'])){ for ($i=0; $i<count($loisirs); $i++) { ?>
       <td> <input type="text"   name="id_materiel[]" value=<?php  echo $loisirs[$i] ;?>/>
    <?php }} ?></td>
    			<td></td>
    	<tr>
    			<th valign="top">Nom du Professeur:</th>
    			<td><input type="text"   name="nomprof" /></td>
    			<td></td>
    		</tr>	</tr>
     
    <tr>
    			<th valign="top">Email:</th>
    			<td><input type="email"name="email"   /></td>
    			<td></td>
    		</tr>
     
     
    		<tr>
    		<th>&nbsp;</th>
    		<td valign="top">
    			<input type="submit" value="" class="form-submit" />
     
    		<td></td>
    	</tr>
    	</table></form>

    et voilà l'étape de l'insertion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php require_once("connection.php")?>
     
    <?php
    $idmateriel=$_POST["id_materiel[]"];$Nomprof=$_POST["nomprof"];
    $email=$_POST["email"];
     
    $req="INSERT INTO commande_pret(	Id_commande,Nom,login,email)VALUES( '','$idmateriel','$Nomprof','$email')";
    $res = $conn->query($req);
     
     
    ?>

    l'émail et le login sont bien insérés,mais le problème réside dans le id_materiel (qui est le nom de materiel) qui me donne un
    "Notice: Undefined index: id_materiel[] in C:\wamp\www\gestionmat\fichepret.php on line 4"
    j'ai essayé d'enlever les crochets mais le problème reste le même,je veux insérer tout les noms matériels affectés à l'input dans ma table

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2016
    Messages : 24
    Points : 5
    Points
    5
    Par défaut
    voilà les noms affectés à l'input que je veux insérer à ma BD

    Nom : Image sans titre1.png
Affichages : 1276
Taille : 15,8 Ko

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ l'indentation de ton code est cahotique*, et ne donne pas du tout envie de le lire...
    ... d'où le manque de réponse.

    2/ Récupération :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $idmateriel_array = $_POST["id_materiel"]; // c'est un array (contenant LES id choisis)
     
    // on peut l'afficher pour s'en convaincre :
    var_dump($idmateriel_array);
     
    // donc, on parcourt cet array :
    foreach( $idmateriel_array as $idmateriel)
    {
       // ici, on peut traiter/enregistrer en Bdd pour CET id $idmateriel
       //...
    }

    * à la limite de la maltraitance...

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2016
    Messages : 24
    Points : 5
    Points
    5
    Par défaut
    chaotique c'est le cas de le dire,il m'a fallu des jours pour pouvoir récupérer des données checkbox de la Base de donnée,c'est pour ça

    j'ai essayé ta solution et ça a bien marché,petit hic,un seul matériel s'affiche,où peut-être j'ai mal saisi ton 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
    <?php require_once("connection.php")?>
     
    <?php
    $idmateriel_array = $_POST["id_materiel"];
    var_dump($idmateriel_array);
    foreach( $idmateriel_array as $idmateriel)
    $Nomprof=$_POST["nomprof"];
    $email=$_POST["email"];
     
    $req="INSERT INTO commande_pret(	Id_commande,Nom,login,email)VALUES( '','$idmateriel','$Nomprof','$email')";
    $res = $conn->query($req);
     
     
    ?>

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2016
    Messages : 24
    Points : 5
    Points
    5
    Par défaut
    Après réflexion j'ai oublié quelque chose

    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
    <?php require_once("connection.php")?>
     
    <?php
    $idmateriel_array = $_POST["id_materiel"];
    var_dump($idmateriel_array);
    foreach( $idmateriel_array as $idmateriel)
    {
    $Nomprof=$_POST["nomprof"];
    $email=$_POST["email"];
     
    $req="INSERT INTO commande_pret(	Id_commande,Nom,login,email)VALUES( '','$idmateriel','$Nomprof','$email')";
    $res = $conn->query($req);
     
    }
    ?>
    Mais encore un problème,quand je sélectionne 2 matériels dans le checkbox,ces 2 matériels s'affichent bien dans ma BD,mais chacune avec un autre id commande,alors que je les veux dans un seul id commande

    Nom : Image sans titre3.png
Affichages : 1166
Taille : 23,1 Ko

  6. #6
    Invité
    Invité(e)
    Par défaut
    C'est un problème de CONCEPTION.
    Dû à un manque de REFLEXION (avant de coder).
    Lui-même dû à un manque de connaissance/expérience, mais ça, ça viendra avec l'apprentissage et la persévérance.


    Tu ne peux pas mettre toutes les informations dans une seule table (commande, acheteur, produits,.....)
    Il faut plusieurs tables, LIEES entre elles (grâce à l'id_commande par exemple).

    • La table "commande" ne doit contenir QUE les informations liées à cette commande : id_commande, date de commande, date de paiement,....
    • Une table "commande_user" (par exemple) contiendra les infos liées à l'utilisateur lié à cette commande (adresse de livraison, moyen de paiement....)
    • Une table "commande_products" (par exemple) contiendra les infos des produits liés à cette commande
      elle contiendra (au moins) 2 champs : id_commande et id_produit + quantité, prix,.....

    Du coup, la table "commande_products" peut contenir plusieurs lignes, avec le même id_commande
    Dernière modification par Invité ; 26/05/2016 à 11h58.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2016
    Messages : 24
    Points : 5
    Points
    5
    Par défaut
    je suis totalement étourdi,est ce que vous pouvez me donner les étapes pour le faire ?

    j'ai crée une table LIAISON avec un (id_commande,nom_materiel) mais quel script faire ????

  8. #8
    Invité
    Invité(e)
    Par défaut
    AVANT de vouloir coder,
    prends le temps de réfléchir à la conception.
    pour ça, il te faut un papier et un crayon.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2016
    Messages : 24
    Points : 5
    Points
    5
    Par défaut
    oui je l'ai bien réalisé la conception et voilà la partie qui m'intéresse




Discussions similaires

  1. Réponses: 5
    Dernier message: 03/04/2010, 12h16
  2. [Toutes versions] Extraire des données word pour les insérer sous excel
    Par progfou dans le forum Word
    Réponses: 23
    Dernier message: 04/05/2009, 15h23
  3. Réponses: 4
    Dernier message: 22/05/2007, 15h42
  4. Récupérer infos page html pour les insérer dans Outlook
    Par andromede88 dans le forum Windows
    Réponses: 4
    Dernier message: 21/09/2006, 15h21
  5. Réponses: 3
    Dernier message: 23/04/2006, 13h14

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