Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 18/05/2011, 11h27   #1
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Par défaut Recherche depuis un formulaire

Bonjour,
je souhaite récupérer une information depuis un formulaire et m'en servir pour établir une recherche dans ma table Mysql :
Merci de votre aide.

Partie de mon code / formulaire HTML :
Code :
1
2
3
4
5
6
7
8
9
10
11
....
<form method="post" action="http://fazpedro.free.fr/rechercher.php">
<fieldset>
<legend> &nbsp; Recherche dans l'agenda des évènements &nbsp; </legend>
<p class="double">
<label for="ev1">Type d'évènement</label>
	<select name="evenement1" class="ev">
	<option value="Tous" selected="selected">Tous</option>
    <option value="Concert">Concert</option>
    <option value="Spectacle" >Spectacle</option>
....
mon script PHP :
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
<?php
//Données pour la connexion à la base de données
$nom_du_serveur ="sql.free.fr";
$nom_de_la_base ="user";
$nom_utilisateur ="user";
$passe ="mdp";
 
//Connexion à la base de données
$db = mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base",$db) OR die( "ERREUR de connexion : " . mysql_error () );
 
//Si il y a une erreur, on crie ^^
if (!$sql) { die ( 'Erreur de requête : ' . mysql_error() ); }
//Si tout va bien
else
 
// requête SQL
$select = 'SELECT * FROM evenement WHERE type_evenement = '$_POST['evenement1']."';  
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
 
 // on recupere le resultat sous forme d'un tableau
$data = mysql_fetch_array($requete);  
 
//Déconnexion
mysql_close();
?>
ma table evenement :
Champ : type_evenement nom
Type : varchar(255) Interclassement : utf8_general_ci
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 11h34   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
et ? qu'est ce qui ne marche pas ? au passage ton code est faux regarde la coloration syntaxique
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 11h37   #3
Membre Expert
 
Avatar de David Guillot
 
Homme David Guillot
Chef de projet en SSII
Inscription : mars 2004
Messages : 879
Détails du profil
Informations personnelles :
Nom : Homme David Guillot
Âge : 28
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2004
Messages : 879
Points : 1 149
Points : 1 149


En temps normal je demanderais :
- Quel est ton problème ?
- Quel résultat obtiens-tu et quel est le delta entre ce résultat et ce que tu souhaites faire ?

Mais la coloration syntaxique m'informe que tu as une Parse Error à la ligne 18 de ton script de traitement. Remplace-la par :
Code :
1
2
 
$select = "SELECT * FROM evenement WHERE type_evenement = '".$_POST['evenement1']."'";
Autre petit détail : pour une page de recherche, mieux vaut mettre la méthode du formulaire à GET, et ce pour 2 raisons :
- Sémantique : tu cherches à récupérer des informations du serveur et non pas à poster des informations sur le serveur
- Pratique : une page de recherche avec une URL en GET est une URL que Google peut référencer
__________________
Avant de poser une question ici :

Après résolution de votre question : un clic sur , un et un vote pour les personnes qui vous ont aidé
David Guillot est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/05/2011, 12h30   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Bonsoir
Citation:
//Si il y a une erreur, on crie ^^
if (!$sql) { die ( 'Erreur de requête : ' . mysql_error() ); }
ça crie ou pas , vue que $sql n'est pas définie .

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 13h19   #5
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Par défaut Recherche depuis un formulaire

@ torvalds17
j'ai bien modifié la ligne mais l'erreur se trouve sur la ligne suivante :
Code :
1
2
 
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
Message d'erreur :
Parse error: syntax error, unexpected '{' in /mnt/154/sdc/8/e/fazpedro/creation.php on line 20
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 13h30   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
utilise un vrai éditeur sinon tu vas jamais t'en sortir, relis bien ton code.
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 13h38   #7
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Regarde bien la couleur syntaxique, tu as une guillemet non fermée

Code :
$select = "SELECT * FROM evenement WHERE type_evenement = '".$_POST['evenement1']."'";
Sinon ça sert à quoi le test avec $sql qui est une variable non instanciée .

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 14h20   #8
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Par défaut Recherche depuis un formulaire

j'ai modifié mon PHP ainsi mais je n'obtiens rien (pas de message d'erreur et une page blanche...) merci de votre aide !

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
//Données pour la connexion à la base de données
$nom_du_serveur ="sql.free.fr";
$nom_de_la_base ="user";
$nom_utilisateur ="user";
$passe ="mdp";
 
//Connexion à la base de données
$db = mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base",$db) OR die( "ERREUR de connexion : " . mysql_error () );
 
// requête SQL
$select = "SELECT * FROM evenement WHERE type_evenement = '".$_POST['evenement1']."'";
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
 
// on recupere le resultat sous forme d'un tableau
$data = mysql_fetch_array($result);  
 
//Déconnexion
mysql_close();
?>
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 14h27   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
affiche les erreurs

au début de ton code :

Code :
1
2
3
ini_set('display_errors', true);
ini_set('mysql.trace_mode', true);
error_reporting(-1);

mais en même temps t'affiches rien donc c'est normale la page blanche....
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 14h29   #10
Membre éprouvé
 
Avatar de Nheo_
 
Homme
Étudiant
Inscription : avril 2011
Messages : 317
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 317
Points : 405
Points : 405
Bonjour

Heu, si je ne me trompe pas dans ton script PHP tu ne fais aucun affichage, donc comment veux tu avoir autre chose qu'une page blanche ?

Tu fais tes requêtes, mais il faut afficher le résultat.
Nheo_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 14h29   #11
Membre Expert
 
Avatar de David Guillot
 
Homme David Guillot
Chef de projet en SSII
Inscription : mars 2004
Messages : 879
Détails du profil
Informations personnelles :
Nom : Homme David Guillot
Âge : 28
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2004
Messages : 879
Points : 1 149
Points : 1 149
Si tu n'as pas de code HTML après ta fermeture de PHP, c'est normal que tu aies une page blanche. Fais donc un petit print_r($data) pour vérifier le contenu de ce que tu as récupéré de ta base de données

Et par pitié, utilise un éditeur avec coloration syntaxique
__________________
Avant de poser une question ici :

Après résolution de votre question : un clic sur , un et un vote pour les personnes qui vous ont aidé
David Guillot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 15h28   #12
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Par défaut Recherche depuis un formulaire

j'ai indiqué ceci :
Code :
1
2
3
// on recupere le resultat sous forme d'un tableau
$data = mysql_fetch_array($result);
print_r($data)
voici le message d'erreur :
Parse error: syntax error, unexpected T_STRING in rechercher.php on line 28

=> ligne 28 : mysql_close();

@ torvalds17 : j'utilise Notepad++ : que me conseilles-tu ?
Merci.
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 15h35   #13
Membre Expert
 
Avatar de David Guillot
 
Homme David Guillot
Chef de projet en SSII
Inscription : mars 2004
Messages : 879
Détails du profil
Informations personnelles :
Nom : Homme David Guillot
Âge : 28
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2004
Messages : 879
Points : 1 149
Points : 1 149
OK tu as un éditeur correct.

Ce dont je ne m'étais pas rendu compte c'est que tu es débutant en PHP. Le message d'erreur que tu obtiens signifie que l'interpréteur n'arrive pas à lire la ligne 28. A priori il n'y a pas d'erreur sur cette ligne, mais ça peut être sur la ligne précédente, genre parce que tu n'as pas mis de point-virgule après avoir copié/collé la ligne que je t'ai donnée
__________________
Avant de poser une question ici :

Après résolution de votre question : un clic sur , un et un vote pour les personnes qui vous ont aidé
David Guillot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 15h36   #14
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Il te faut un ";" après print_r($data)

Code :
1
2
3
$data = mysql_fetch_array($result);
print_r($data);
mysql_close();
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/05/2011, 21h20   #15
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Par défaut Répondre à la discussion

voici le code php modifié qui fonctionne ..presque
si je prends la deuxième option dans la liste déroulante "Spectacle", j'obtiens une page blanche alors que si je prends "Concert", il me donne bien des éléments...

merci à tous.

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
 
<?php
//Message des erreurs
ini_set('display_errors', true);
ini_set('mysql.trace_mode', true);
error_reporting(-1);
 
//Données pour la connexion à la base de données
$nom_du_serveur ="sql.free.fr";
$nom_de_la_base ="user";
$nom_utilisateur ="user";
$passe ="mdp";
 
//Connexion à la base de données
$db = mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base",$db) OR die( "ERREUR de connexion : " . mysql_error () );
 
// requête SQL
$select = "SELECT * FROM evenement WHERE type_evenement = '".$_POST['evenement1']."'";
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
 
// on recupere le resultat sous forme d'un tableau
$data = mysql_fetch_array($result);
print_r($data);
 
//Déconnexion
mysql_close(); 
?>
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 08h46   #16
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Par défaut Recherche depuis un formulaire

Voici le code PHP rectifié et qui fonctionne bien :

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
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MON SITE</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<!--[if IE]>
<style type="text/css">
/* placer les corrections pour toutes les version d'IE dans ce commentaire conditionnel */
#sidebar1, #sidebar2 { padding-top: 30px; }
#mainContent { zoom: 1; padding-top: 15px; }
/* la propriété du proprétaire zoom ci-dessus transmet à IE l'attribut hasLayout nécéssaire pour éviter plusieurs bogues */
   </style>
   <![endif]-->
</head>
<body>
<?php include('bandeau.php'); ?> <!-- insère le bandeau principal en haut -->
<?php include('lateral.php'); ?> <!-- insère les côtés gauche et droite -->
<div id="mainContent">
<table>
<tr>
<td><b />Type Evenement</td><td><b />Type de lieu</td><td><b />Secteur</td><td><b />Heure</td>
<td><b />Tarif</td><td><b />Lieu</td><td><b />Nom</td><td><b />Description</td>
</tr>
 
<?php
// on se connecte à la base de données
mysql_connect("sql.free.fr","user","mdp");
mysql_select_db("$nom_de_la_base") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es de connections.');
mysql_query("SET NAMES UTF8"); 
//On sélectionne tout dans la table  par "id" croissant	
//$select = "SELECT * FROM evenement WHERE type_evenement = '".$_POST['evenement1']."'";
$select = "SELECT * FROM evenement WHERE type_evenement LIKE '".$_POST['evenement1']."'";
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
//On vérifie que la table contient quelque chose
if
(mysql_num_rows($result) == 0)
{
echo '<p>Aucun commentaire!</p>';
}
//Si il y a des entrées	  
else
{
//On fait une boucle pour sortir toutes les entrées
while($affiche = mysql_fetch_array($result))
 {
//On affiche les entrées
echo 
'<p>'
.'<td>'.'<h4/>'.$affiche["type_evenement"].'</td>'
.'<td>'.'<h4/>'.$affiche["type_etab"].'</td>'
.'<td>'.'<h4/>'.$affiche["secteur"].'</td>'
.'<td>'.'<h4/>'.$affiche["heure"].'</td>'
.'<td>'.'<h4/>'.$affiche["tarif"].'</td>'
.'<td>'.'<h4/>'.$affiche["lieu"].'</td>'
.'<td>'.'<h4/>'.$affiche["nom"].'</td>'
.'<td>'.'<h4/>'.$affiche["description"]
.'<tr>'.'</tr>';
//On ferme la boucle while
 }
//on ferme le else
}
// Fermeture de la connexion à la base de données
mysql_close();		
?>
</table>
</div>
<?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
</body>
</html>
fazpedro 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 14h32.


 
 
 
 
Partenaires

Hébergement Web