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 des données avec une boucle while


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut Insérer des données avec une boucle while
    salam

    j'ai réalisé un tableau qui contient une liste des élèves avec un champ de texte a la fin de chaque ligne dans la liste, le probleme

    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
    	    	    $nclass = $_GET['nclass'];
    		    $trim   = $_GET['trim'];
    		    $nenseign= $_SESSION['numero_enseignant'];
    		    $req    = $bdd1->query("select * from eleve where n_class = $nclass");
    		    $req1   = $bdd1->query("select * from enseignant where num_enseignant = $nenseign");
    		    $res1   = $req1->fetch();
    		    $n_mat  = $res1['n_mat'];
    		    $dev    = $_GET['dev'];
     
    	echo"<form method='post' action='#'>";
    				echo"<table border = '1'>";
    			echo"<tr><td><strong>Numéro</strong></td><td><strong>Nom</strong></td><td><strong>Prénom</strong></td><td><strong>Adresse</strong></td><td><strong>".$_GET['dev']."</strong></td></tr>";
    			while($res    = $req->fetch())
    			    {
    				echo "<tr><td>".$res['n_eleve']."</td><td>".$res['nom_eleve']."</td><td>".$res['prenom_eleve']."</td><td>".$res['adresse']."</td><td><input size ='8' type ='text' name='".$res['n_eleve']."'/></td></tr>";
    				if(isset($_POST['valider']))
    				    {
    					$neleve = $res['n_eleve'];
    					$note = $_POST[''.$neleve];
    					echo $neleve;
    					echo $note;
    					$insert ="insert into note values($neleve,'$trim',$n_mat,'$dev','$note')";
    					$req3 = $bdd1->exec($insert);
    				    }
    			    }
    		    echo"</table><br/>"; 
    		echo"<input type = 'submit' value = 'valider' name= 'valider'/>";
    		?>
    	</form>
    mon problème c'est que la requête insert un seul enregistrement dans la table note. C'est quoi le problème ?
    Merci d'avance

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    commence par protéger tes valeurs, c'est plus un trou mais un gouffre en sécurité la.

  3. #3
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut salut
    j'ai pas compris, protection des valeurs ?!

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920

  5. #5
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 23
    Par défaut
    Ok merci, je vais voir le lien mais je veux savoir pourquoi la boucle que j'ai fait insert qu'un seul enregistrement dans la table

  6. #6
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Citation Envoyé par adnanedelphi Voir le message
    Ok merci, je vais voir le lien mais je veux savoir pourquoi la boucle que j'ai fait insert qu'un seul enregistrement dans la table
    Sûrement parce que cette requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req    = $bdd1->query("select * from eleve where n_class = $nclass");
    ne renvoie qu'une ligne de résultat tout bêtement.
    Ou que la requête d'insertion échoue lamentablement. Tu le saura si tu vérifie le résultat de l’exécution. Regarde donc les logs de PHP, tu devrais y voir de jolies choses.

    Et puis faire de l'affichage + des traitements métiers + des requêtes SQL au sein du même script sans même les séparer c'est immonde.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/04/2010, 11h24
  2. [MySQL] Insérer des données dans une table avec Foreach
    Par Gogad dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/04/2010, 08h53
  3. [MySQL] Insérer 700 tuples avec une boucle while
    Par JackBeauregard dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 22/07/2008, 21h10
  4. [D6 => XML] Récupération de données avec une boucle.
    Par Bason_sensei dans le forum Delphi
    Réponses: 1
    Dernier message: 23/05/2006, 13h50
  5. [format des données avec une procédure stockée]
    Par viny dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 10/03/2005, 13h24

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