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 17/03/2011, 12h04   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 18
Points : 0
Points : 0
Par défaut un petit coup de pouce svp

Bonjour,

voilà depuis hier j'essaie de trouver ce que j'ai bien pu faire comme merdier mais en vain. Comme j'ai appris le php que depuis très peu, j'ai l'impression d'avoir un peu tout melanger. Bref, j'aurais besoin d'un petit coup de pouce de votre part car là je sature!!

J'ai crée un formulaire, qui va chercher les noms dans la base de donnée. Le but c'est que lorsque l'utilisateur choisi un nom et qu'il clique sur envoyer tout les détails de ce noms (qui sont dans la bdd) apparaissent sur cette même page.

Voici le code ( c'est un peu long désolée mais je suis sur que vous aurez tout ce qu'il vous faut), je ne demande pas a ce qu'on me mache le travail, mais un petit coup de pouce me ferai plaisir. Merci

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<form method="post" action="race_chien2.php">
<fieldset>
       <legend>Rechercher un profil </legend>
   <p>
      <label for="Noms">Choisissez la race :</label>
       <select name="Noms" id="Noms">
 
	   <?php
$host = "127.0.0.1";
$user = "root";
$password = "";
$bdd = "tout_sur_les_chiens"; 
{
mysql_connect($host, $user, $password);
mysql_select_db($bdd) or die("Impossible d'ouvrir la base de donnee $bdd");
}
 
	$lettre = '1'; //On initalise la lettre a une valeur absurde
	$sql = 'SELECT Noms FROM race_chien ORDER BY Noms ASC'; //ici change le champ et la table pour adapter :p
	$req = mysql_query($sql) or die(mysql_error());
 
	while($data = mysql_fetch_assoc($req)) //envoie la colonne voulu $req= connect a $sql = prendre tous les noms de race_chien et classer par ordre croissant
	{
	   if (substr($data['Noms'],0,1) != $lettre) //Si on change de lettre; substr = extraire
	   {
			if ($lettre != '1') //Si on as déjà changé de lettre, on ferme le optgroup
			{
				echo '</optgroup>';
			}
			$lettre = substr($data['Noms'], 0, 1);
			echo '<optgroup label="'.$lettre.'">';
		}
 
		echo '<option value="'.$data['Noms'].'">'.$data['Noms'].'</option>';//donne les noms dans le formulaire
	}
 
	if ($lettre != '1') //Et enfin si on a mit une lettre (le seul cas ou ce serait faux serait celui ou l'on ne trouve rien, mais quand même :p
	{
		echo '</optgroup>';
	}
		?>
       </select>
    	<input type="SUBMIT" name="Noms" value="Rechercher">		
 
   </p>
</fieldset>
</form>   
</body>
</html>
    <?php 	
 
$sql =('SELECT * FROM race_chien WHERE Noms');
$reponse = mysql_query($sql) or die ( mysql_error());
$donnees = mysql_fetch_assoc($reponse);
$Noms=(isset($_POST["Noms"])) ? $_POST["Noms"] : ""; 
 
	if ($_POST['Noms']=="ok") 
{
	echo $donnees;
 
	?>   
	<p>
    <strong>Races :</strong><?php echo $donnees['Noms']; ?><br />
    <strong>Origine :</strong><?php echo $donnees['Origine']; ?><br /> 
	<strong>Espérance de vie :</strong><?php echo $donnees['Esperance']; ?><br />
	<strong>Tailles Mâles :</strong><?php echo $donnees['Tailles_Males']; ?>cm et <?php echo $donnees['Tailles_Males_Max']; ?>cm<br />
	<strong>Tailles Femelles :</strong><?php echo $donnees['Tailles_Femelles']; ?>cm et <?php echo $donnees['Tailles_Femelles_Max']; ?>cm<br />
	<strong>Poids Mâles :</strong><?php echo $donnees['Poids_Males']; ?>kg et <?php echo $donnees['Poids_Males_Max']; ?>kg<br />
	<strong>Poids Femelles :</strong><?php echo $donnees['Poids_Femelles']; ?>kg et <?php echo $donnees['Poids_Femelles_Max']; ?>kg<br />
	<strong>Standare FCI :</strong><?php echo $donnees['Standare_FCI']; ?><br />
	<strong>Standare AKC :</strong><?php echo $donnees['Standare_AKC']; ?><br />
	<strong>Historique :</strong><?php echo $donnees['Historique']; ?><br />
	<strong>Caractères :</strong><?php echo $donnees['Caracteres']; ?><br />
	<strong>Physiques :</strong><?php echo $donnees['Physiques']; ?><br />
	<strong>Défauts :</strong><?php echo $donnees['Defauts']; ?><br /></em>
   </p>
 
	<?php
}
{
$reponse = mysql_close(); // Termine le traitement de la requête
}
	?>
J'espère que je n'ai pas écrit de gros monstuosité
freestyle83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 12h09   #2
Modérateur
 
Avatar de Golgotha
 
Homme cédric
Développeur informatique
Inscription : août 2007
Messages : 732
Détails du profil
Informations personnelles :
Nom : Homme cédric
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2007
Messages : 732
Points : 1 573
Points : 1 573
Envoyer un message via Skype™ à Golgotha
Bonjour,

Quel est le problème exactement ? messages d’erreurs ?
__________________
modérateur webmasters - développements web & php
faq jQuery - règles du forum - faqs web
mon espace perso
Venez participez au deuxième defi Web !
Golgotha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 12h38   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 18
Points : 0
Points : 0
Bonjour,

ça me met :

Notice: Undefined index: Noms in C:\Users\anva\Desktop\www\www\ToutSurLesChiens\race_chien2.php on line 91

Sinon l'affichage ne se fait pas.
freestyle83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 12h46   #4
Membre éprouvé
 
Développeur Web
Inscription : avril 2005
Messages : 395
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 395
Points : 479
Points : 479
Salut
je n'ai pas tout regardé le code, mais déjà il y a un soucis lors de ta requête d'affichage.
Code :
1
2
 
'SELECT * FROM race_chien WHERE Noms'
avec ça tu ne vas rien récupérer !

Comme cela ce sera mieux :
Code :
'SELECT * FROM race_chien'
__________________
Zend PHP5 Certification
MySQL 4 Core Certification
Gats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 12h54   #5
Invité de passage
 
Inscription : janvier 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 18
Points : 0
Points : 0
Merci pour votre réponse, en fait j'ai mis where, parce que dans ma tete je voulais qu'il recupère la ligne du noms que l'utilisateur a selectionné.

J'ai testé, mais comme je m'y attendais ça ne fonctionne pas.
Code :
1
2
3
4
5
6
7
8
9
 
$sql =('SELECT * FROM race_chien');
$reponse = mysql_query($sql) or die ( mysql_error());
$donnees = mysql_fetch_assoc($reponse);
$Noms=(isset($_POST["Noms"])) ? $_POST["Noms"] : ""; 
 
	if ($_POST['Noms']=="ok") 
{
	echo $donnees;
Je pense que mon erreur doit se trouver la dedans. J'ai essayé plusieurs trucs...En vain.
freestyle83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 13h05   #6
Membre éprouvé
 
Développeur Web
Inscription : avril 2005
Messages : 395
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 395
Points : 479
Points : 479
Je vois un second problème

Ta liste déroulante "select" a le même nom que ton "input"
name="Noms"
du coup tu dois perdre la valeur du select au profit de celle de l'input submit

Je te propose donc de laisser <select name="Noms" ... >
et pour l'input tu changes <input type="submit" name="ok" ... >

ensuite pour afficher selon le choix de la liste box il faut faire quelque chose comme cela :

Code :
1
2
3
4
5
6
7
8
9
 
if(!empty($_POST['ok'])  )
{
 // n'oublie pas de t'informer sur la sécurité des données 
// qui proviennent de l'extérieur... 
     $query_chien = (!empty($_POST['Noms'])?"WHERE Noms='".$_POST['Noms']."'":"");
     $sql ="SELECT * FROM race_chien $query_chien";  
      // etc
}
__________________
Zend PHP5 Certification
MySQL 4 Core Certification
Gats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 13h19   #7
Invité de passage
 
Inscription : janvier 2011
Messages : 18
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 18
Points : 0
Points : 0
Merci pour ton aide, je vais faire tout ça.
Et merci pour l'avertissement, je l'avais déjà pas mal lu dans les cours " ne jamais faire confiance aux utilisateurs". Le problème c'est quand on est pas expérimenter, on ne fait pas attention a tout Jusqu'au jour ou on se retrouve dans un beau merdier parce que X a décider de s'amuser

Comme je dis souvent, : " y-a qu'en faisant des erreurs qu'on apprend"

Bon bah je retourne reflechir merci en tout cas
freestyle83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h24.


 
 
 
 
Partenaires

Hébergement Web