Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 06/09/2006, 21h33   #1
Membre du Club
 
Avatar de heteroclite
 
Inscription : juin 2006
Messages : 147
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2006
Messages : 147
Points : 50
Points : 50
Par défaut [SQL] Utilisation de variables dans une requête SQL

Bonjour,

j'essaye de récupérer les informations saisies dans un formulaire pour alimenter une requête sql et retourner les resultats....j'ai tenté un truc .....mais j'ai une erreur dans la requete ....une idée ?

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
<?php 
// On commence par récupérer les champs 
if(isset($_POST['jour']))      $jour=$_POST['jour'];
else      $jour="";
 
if(isset($_POST['mois']))      $mois=$_POST['mois'];
else      $mois="";
 
if(isset($_POST['an']))      $an=$_POST['an'];
else      $an="";
 
 
if(isset($_POST['ville']))      $ville=$_POST['ville'];
else      $ville="";
 
 
 
 
 
 
    { 
       // connexion à la base
$db = mysql_connect('******', '*******', '******')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  
 
    mysql_select_db('*******',$db)  or die('Erreur de selection '.mysql_error()); 
 
    // on crée la requête SQL 
SELECT * FROM annonce WHERE jour='$jour' AND mois='$mois' AND an='$an' AND ville='$ville';
 
// on envoie la requête 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
 
// on fait une boucle qui va faire un tour pour chaque enregistrement 
while($data = mysql_fetch_assoc($req)) 
    { 
    // on affiche les informations de l'enregistrement en cours 
    echo '<b>'.$data['jour'].' '.$data['mois'].'</b> ('.$data['an'].')'; 
    echo ' <i>ville : '.$data['ville'].'</i><br>'; 
    } 
 
// on ferme la connexion à mysql 
mysql_close(); 
?>
heteroclite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2006, 21h37   #2
Membre actif
 
Avatar de renaudjuif
 
Inscription : avril 2006
Messages : 300
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 300
Points : 174
Points : 174
Quel est le message d'erreur ?
renaudjuif est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2006, 21h41   #3
Membre du Club
 
Avatar de heteroclite
 
Inscription : juin 2006
Messages : 147
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2006
Messages : 147
Points : 50
Points : 50
voici le message

Code :
Parse error: syntax error, unexpected T_STRING in /home/serevo/public_html/recherche1script.php on line 65
la ligne 65 c'est celle la
Code :
SELECT * FROM annonce WHERE jour='$jour' AND mois='$mois' AND an='$an' AND ville='$ville';
heteroclite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2006, 21h47   #4
Membre actif
 
Avatar de renaudjuif
 
Inscription : avril 2006
Messages : 300
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 300
Points : 174
Points : 174
et si tu faisais :
Code :
1
2
 
$sql="SELECT * FROM annonce WHERE jour='$jour' AND mois='$mois' AND an='$an' AND ville='$ville'";
renaudjuif est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2006, 22h00   #5
Membre du Club
 
Avatar de heteroclite
 
Inscription : juin 2006
Messages : 147
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2006
Messages : 147
Points : 50
Points : 50
merci ....ça marche
mais par contre il y a un trucs qui va pas ....

par exemple j'ai deux dates identiques dans la base ....ça devrait me sortir deux enregistrements....et en fait j'en ai qu'un ....tu as une idée ?
heteroclite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2006, 22h17   #6
Membre actif
 
Avatar de renaudjuif
 
Inscription : avril 2006
Messages : 300
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 300
Points : 174
Points : 174
Ca doit être une histoire de "AND" et de "OR" dans ta requête...

Dans ta requête, il faut que tous les critères soient valides (jour='$jour' AND mois='$mois' AND ...)
Si tu remplaces tes AND par des OR, si au moins 1 des conditions est remplie (2 dates pareilles par ex.), ça te retournera 2 enregistrements.
renaudjuif est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2006, 23h03   #7
Membre du Club
 
Avatar de heteroclite
 
Inscription : juin 2006
Messages : 147
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2006
Messages : 147
Points : 50
Points : 50
ok
mais par exemple j'ai dans la base

23/03/2006 paris
23/03/2006 lyon
23/03/2006 marseille
23/04/2006 bordeaux
12/05/2006 bordeaux

mon formulaire me permet de selectionner :
un jour
un mois
une année
une ville


Si je selectionne
juste jour= 23
alors je voudrais que la requete m'affiche:
23/03/2006 paris
23/03/2006 lyon
23/03/2006 marseille
23/04/2006 bordeaux

si je selectionne
jour=23
mois=03
alors je voudrais que la requete m'affiche:
23/03/2006 paris
23/03/2006 lyon
23/03/2006 marseille


qu'est ce que je dois modifier dans mon script pour avoir ça ?

merci !
heteroclite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2006, 08h50   #8
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 17
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 17
Points : 15
Points : 15
salut,

moi pour faire ça j'utilise
Code :
 where ville like '%$ville%'
au lieu de
ainsi, si $ville=="", elles seront toutes sélectionnées par ta requête, et tu auras tout les enregistrements correspondant à ta date, quelque soit la ville.

bon je ne suis pas un pro, plutôt un bidouilleur, donc il est fort possible que quelqu'un connaisse une solution un peu plus optimisée...

bonne journée,

jérôme

[edit] je me rends compte que ça pose problème en effet s'il existe une ville dont le nom est contenu dans le nom d'une autre ville... c'est pas parfait du tout...
jérômeencrise est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2006, 22h38   #9
Membre du Club
 
Avatar de heteroclite
 
Inscription : juin 2006
Messages : 147
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2006
Messages : 147
Points : 50
Points : 50
merci pour ces infos....je vais mettre ça en pratique ....mais comment faire en cas de "pas de résultat pour la requête", pour aiguiller l'utilisateur vers une autre page html ?
heteroclite 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 08h18.


 
 
 
 
Partenaires

Hébergement Web