Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/07/2007, 09h46   #1
Membre à l'essai
 
Inscription : mai 2007
Messages : 137
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 137
Points : 22
Points : 22
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 :
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
Seb981 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 09h59   #2
Nouveau Membre du Club
 
Étudiant
Inscription : juin 2006
Messages : 66
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 66
Points : 37
Points : 37
salut

pour ton option tu peut faire un truc de ce genre

Code :
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.
benoît82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 10h03   #3
Membre à l'essai
 
Inscription : mai 2007
Messages : 137
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 137
Points : 22
Points : 22
Merci pour ta réponse, je vais essayer cela toute suite.

@+ Seb
Seb981 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 10h57   #4
Membre à l'essai
 
Inscription : mai 2007
Messages : 137
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 137
Points : 22
Points : 22
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 :
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)
Seb981 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 11h20   #5
Nouveau Membre du Club
 
Étudiant
Inscription : juin 2006
Messages : 66
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 66
Points : 37
Points : 37
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)
benoît82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 11h36   #6
Membre à l'essai
 
Inscription : mai 2007
Messages : 137
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 137
Points : 22
Points : 22
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
Seb981 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 13h47   #7
Membre à l'essai
 
Inscription : mai 2007
Messages : 137
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 137
Points : 22
Points : 22
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 :
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 :
1
2
 
name='NUMOUTIL".$h."'
et j'ai rajouté donc un compteur h.
Seb981 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 14h04   #8
Nouveau Membre du Club
 
Étudiant
Inscription : juin 2006
Messages : 66
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 66
Points : 37
Points : 37
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 :
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é
benoît82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 14h13   #9
Membre à l'essai
 
Inscription : mai 2007
Messages : 137
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 137
Points : 22
Points : 22
merci pour ton aide, je vais essayer ton code.

Voici mon code pour ma page de formulaire :
Code :
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>
Seb981 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 14h28   #10
Nouveau Membre du Club
 
Étudiant
Inscription : juin 2006
Messages : 66
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 66
Points : 37
Points : 37
dans ce cas tu as une requete as faire pour récupérer le numero de garage

Code :
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
benoît82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 15h10   #11
Membre à l'essai
 
Inscription : mai 2007
Messages : 137
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 137
Points : 22
Points : 22
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 :
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 :
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
Seb981 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/07/2007, 15h55   #12
Nouveau Membre du Club
 
Étudiant
Inscription : juin 2006
Messages : 66
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2006
Messages : 66
Points : 37
Points : 37
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 :
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 :
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.
benoît82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2007, 08h06   #13
Membre à l'essai
 
Inscription : mai 2007
Messages : 137
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 137
Points : 22
Points : 22
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)
Seb981 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2007, 09h57   #14
Membre à l'essai
 
Inscription : mai 2007
Messages : 137
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 137
Points : 22
Points : 22
ça y'est je viens de trouver la solution.

dans le formulaire je mets :
Code :
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 :
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() ) ;
				}
  			}
  }
Seb981 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h58.


 
 
 
 
Partenaires

Hébergement Web