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

Langage PHP Discussion :

Formulaire : Problème d'affichage


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 139
    Par défaut Formulaire : Problème d'affichage
    Bonjour à tous,

    Je suis entrain de faire des formulaires pour insérer des données dans ma base de données et j'ai un probléme au niveau du formulaire.

    Je veux selectionner une personne par son nom et son prénom dans une liste mais je voudrais récupérer par la suite son numéro de personne car c'est pour mettre dans une autre table.

    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
     
    <?php
    		$requete = "SELECT NUMPERSONNE,NOMPERSONNE,PRENOMPERSONNE FROM PERSONNE";
    		$resultat = mysql_query($requete) or die(mysql_error());
    		// Récupération des résultats
    		while($row = mysql_fetch_row($resultat)){
    			$l1 = count ($row);
    			for($i=0;$i<$l1;$i++){
    				$l2 = count ($row [$i]);
    		   		echo("<option>".$row[$i]." - ".$row[$i+1]." ".$row[$i+2]."</option>"); <- je voudrais ici seulement le nom et le prénom de la personne pas d'affichage du numpersonne
    et après je ne vois pas comment prendre le numéro de la personne, pour, par la suite, l'envoyer en post.
    		   		$i=$i+2;
    			}
    		}
    		mysql_close ();
    		?>
    J'espere que ce que j'ai écris est compréhensible (N'hesitez pas à me poser des questions si ce n'est pas le cas) et que vous pourrez m'aider.

    @+ Seb

  2. #2
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Par défaut
    salut

    pour ton option tu peut faire un truc de ce genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo("<option value=".$row[$i].">".$row[$i+1]." ".$row[$i+2]."</option>");
    comme ca normalement tu affiche le nom et le prenom et tu passe ne paramètre la valeur.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 139
    Par défaut
    Merci pour ta réponse, je vais essayer cela toute suite.

    @+ Seb

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 139
    Par défaut
    Merci beaucoup cela marche.

    J'ai encore un autre problème pour l'insertion des données dans ma Base de données.
    J'ai 3 tables :
    garage (numgarage, nomgarage)
    garage_outil (numoutil, numgarage)
    et outil ( numoutil, nomoutil)

    Lorsque je rentre un garage je dois lui dire quel outil il a : c'est ce que je fais avec ce 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
     
    <?php
    $requete = "SELECT NOMOUTIL,NUMOUTIL FROM OUTIL";
    $resultat = mysql_query($requete) or die(mysql_error());
    // Récupération des résultats
    while($row = mysql_fetch_row($resultat)){
    	$l1 = count ($row);
    	for($i=0;$i<$l1;$i++){
    		$l2 = count ($row [$i]);
    		   echo("<tr>");
    		   echo("<td class='bleu_nuage'>".$row[$i]."</td>");
    		echo("<td class='bleu_nuage'>");
    		echo("<input type ='radio' name='NUMOUTIL' value=".$row[$i+1]."/> oui");
    			echo("<input type ='radio' name='NUMOUTIL' value=".$row[$i+1]."/> non");
    			echo("</td>");
    		   	$i=$i+1;
    		   	echo("</tr>");
    			}
    		}
    	mysql_close ();
    	?>
    Mais après je ne vois pas du tout comment faire pour insérer les données dans la table garage_outil :
    sachant qu'il me faudrait le numgarage qu'il vient de se faire créer
    et insérer des lignes par exemple si le numgarage est 3 :
    3 1(outil1 ou il y a oui)
    3 5(outil5 ou il y a oui)

  5. #5
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Par défaut
    si je comprend bien ton code tu aura plusieur outil que tu poura sélectionner en meme temps.

    si c'est le cas tu aura un problème pour la récupération car tu donne le mème nom à tes input tu va donc perdre des informations en cas de plusieur sélection d'outils

    tu peut toujours metttre 'NUMOUTIL'.$i

    apres pour la récupération tu fait une boucle pour tous les récupérer

    et un insert into .... values(...) where numgarage=3 (par exemple)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 139
    Par défaut
    Merci ! Bien vu en effet ! J'avais un problème pour le oui et le non je pouvais en selectionner qu'un pour tous les outils.
    Je vais essayer de faire à présent l'insertion dans la base de données en suivant tes conseils.

    @+ Seb

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 139
    Par défaut
    Pour l'insertion de données avec des boutons d'option, je ne vois pas comment m'y prendre.
    Serait-il possible de m'aider à compléter mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for (i=0;i<10;i++){     /* je ne sais pas comment avoir mon nombre d'outil */
        $NUMGARAGE = 2; /* je ne sais pas comment récupérer mon numéro de garage */
        $NUMOUTIL  = $_POST["NUMOUTIL"]; /* je ne sais pas comment récupérer mes numéros d'outils */
        $sql2 = "INSERT INTO garage_outil (NUMGARAGE,NUMOUTIL)  VALUES ('$NUMGARAGE','$NUMOUTIL')";
        $requete2 = mysql_query($sql2, $cnx) or die( mysql_error() ) ;
      }
    et dans ma page de formulaire j'ai modifié
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    name='NUMOUTIL".$h."'
    et j'ai rajouté donc un compteur h.

  8. #8
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Par défaut
    lorsque tu fait ta requete select sur test outil tu peut faire un mysql_num_rows($resultat) et tu aura le nombre d'outil récupérer par ta requete

    as tu un formulaire de sélection du garage? si oui montre tu doit pouvoir récuperrer l'id du garage.
    pour la récupération des outils tu faire une boucle de ce genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for($i=0, $i<$nboutil;$i++)
    {
        $nom= 'NUMOUTIL'.$i;
        $valeur[$i] = $_POST[$nom];
      //apres c'est ta requete d'insertion
    }
    je ne l'ai pas testé

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 139
    Par défaut
    merci pour ton aide, je vais essayer ton code.

    Voici mon code pour ma page de 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
    41
    42
     
    <form name="insert" action="insert_garageoutil2.php" method="POST">
    <table width="600px">
    	<tr>
    		<td class="bleu_nuage">Nom</td>
    		<td> <input type ="text" name="NOMGARAGE" size="33" /></td>
    	</tr>
    	<tr>
    		<td class="bleu_nuage"><br />OUTIL<br /></td>
    	<tr/>
    	<?php
    	require "../mdp.php";
    	$requete = "SELECT NOMOUTIL,NUMOUTIL FROM OUTIL";
    	$resultat = mysql_query($requete) or die(mysql_error());
    	// Récupération des résultats
    	$j=0;
    	$h=0;
    	while($row = mysql_fetch_row($resultat)){
    		$l1 = count ($row);
    		for($i=0;$i<$l1;$i++){
    			$l2 = count ($row [$i]);
    		    echo("<tr>");
    		   	echo("<td class='fond_bleu".$j."'>".$row[$i]."</td>");
    			echo("<td class='fond_bleu".$j."'>");
    			echo("<input type ='radio' name='NUMOUTIL".$h."' value=".$row[$i+1]."/>oui");
    			echo("<input type ='radio' name='NUMOUTIL".$h."' value=".$row[$i+1]." checked='checked' /> non");
    			echo("</td>");
    			echo("</tr>");
    		   	$i=$i+1;
    		   	$j++; 
    		   	$h++;
    		   	if($j==2){$j=0;}
    		}
    	}
    	mysql_close ();
    	?>
    	<tr>
    		<td></td>
    		<td align="right"><br /><input type="submit" value="valider"></td>
    	</tr>
    </table>
    </form>

  10. #10
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Par défaut
    dans ce cas tu as une requete as faire pour récupérer le numero de garage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $nomgarage=$_POST['NOMGARAGE'];
    $rq = "select numgarage from garage where nomgarage='$nomgarage'";
    ...
    ensuite tu aura le numero de garage que tu poura utiliser pour l'insertion

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 139
    Par défaut
    Merci, j'arrive à avoir le dernier garage mais toujours pas à trouver mon nombre d'outil ( c'est à dire tous les boutons d'option à oui ) et après à reprendre leur numéro.

    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $NOMGARAGE 	= $_POST["NOMGARAGE"];
      $sql1 		= "INSERT  INTO GARAGE (NOMGARAGE) VALUES ('$NOMGARAGE')";
      $requete1 	= mysql_query($sql1, $cnx) or die( mysql_error() );
      $NUMGARAGE 	= mysql_insert_id();
      
      $nbrOutil = ?
    for($i=0;$i<$nbrOutil;$i++){
    	$NUMOUTIL = ?
      	$sql2 = "INSERT INTO garage_outil (NUMOUTIL,NUMGARAGE) VALUES ('$NUMOUTIL','$NUMGARAGE')";
      	$requete2 = mysql_query($sql2, $cnx) or die( mysql_error() ) ;
      }
    avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for($i=0;$i<5;$i++){
       $NUMOUTIL1= 'NUMOUTIL'.$i;
        $NUMOUTIL[$i] = $_POST[$NUMOUTIL1];
    il me met cela dans ma base de données :
    (14 etant le numgarage)
    1 14
    2 14
    3 14
    4 14
    5 14

    le vrai probléme c'est de me faire une ligne seulement pour l'outil qui a eu l'option oui

  12. #12
    Membre confirmé
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    66
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 66
    Par défaut
    meme si tu connait le nombre d'outil que tu a cocher tu ne recuperera pas les bon nom.

    il faut que tu fasse une requet sur ta table outil du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql="SELECT count(*) from outil";
    $query = mysql_query($sql);
    $nbrOutil= mysql_result($query,0);
    par contre pour la deuxième boucle as tu vérifier que les nom que tu obtient on bient ete coché
    esay de faire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(isset($_POST[$NUMOUTIL1]))
    {
       $NUMOUTIL[$i] = $_POST[$NUMOUTIL1];
    }
    par contre je te conseil de ne pas faire la requet toute de suit mais de seulement les afficher afin de faire une vérification.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 139
    Par défaut
    Merci pour ta réponse. Je viens de faire un affichage et en effet j'ai tous les outils même ceux qui n'ont pas été coché. Aurais-tu une idée pour savoir comment prendre ceux qui sont à oui ? (J'ai 2 radios boutons : oui et non)

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 139
    Par défaut
    ça y'est je viens de trouver la solution.

    dans le formulaire je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    name=".$row[$i+1]." value='oui'
    name=".$row[$i+1]." value='non'
    dans la page de reception :
    je reprend la requete du formulaire et je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    while	($row = mysql_fetch_row($requete2)){
    		$l1 = count ($row);
    		for	($i=0;$i<$l1;$i++){
    			$NUMOUTIL1 = $row[$i] ;
       	 		if ($_POST[$NUMOUTIL1]=='oui'){
       		  		$sql3 = "INSERT INTO outil_garage (NUMOUTIL,NUMGARAGE) VALUES ('$NUMOUTIL1','$NUMGARAGE')";
      		  		$requete3 = mysql_query($sql3, $cnx) or die( mysql_error() ) ;
    				}
      			}
      }

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

Discussions similaires

  1. [2.x] [Twig][Formulaire] Problème d'affichage avec une boucle
    Par ccomarvin dans le forum Symfony
    Réponses: 1
    Dernier message: 31/01/2013, 10h57
  2. [AC-2003] Filtre sous-formulaire problème d'affichage
    Par NdrS108 dans le forum Access
    Réponses: 0
    Dernier message: 05/07/2010, 14h32
  3. Problème d'affichage sur formulaire
    Par PAUL87 dans le forum Access
    Réponses: 3
    Dernier message: 27/06/2006, 23h08
  4. Problème d'affichage d'un sous-formulaire..
    Par DeFCrew dans le forum IHM
    Réponses: 5
    Dernier message: 20/06/2006, 12h05
  5. Réponses: 6
    Dernier message: 19/05/2005, 11h06

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