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 28/08/2007, 14h24   #1
Invité de passage
 
Inscription : août 2007
Messages : 16
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : août 2007
Messages : 16
Points : 0
Points : 0
Par défaut [SQL] Requête et WHERE

Bonjour à tous. J'ai un problème avec la requête WHERE, en fait j'ai un formulaire recherche_joueur, quand je tape le nom d'un joueur ( de foot ) dans l'un des champs et que je clique sur recherche, cela me renvoie sur la page confirm_recherche_joueur ( ce qui est normal) mais rien n'est affiché à l'écran, pas de nom de joueur ni de prénom ( si je change de champs ). je pense que cela vient de la requête WHERE mais j'ai passé une après-midi à chercher , sans trouvé ... De quoi cela peut-il venir d'après vous ? Merci

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mysql_connect('serveur','login','pass') ;
mysql_select_db('nom_db');
$reponse = mysql_query(
"SELECT * FROM football_players
WHERE (lastname=' . $lastname . '
AND firstname=' . $firstname . '
AND country=' . $country . '
AND birthday=' . $birthday . '
AND birthcity=' . $birthcity . '
AND international=' . $international . '
AND height=' . $height . '
AND weight=' . $weight . '
AND position=' . $position . '")
or die(mysql_error()) ;
while ($donnees = mysql_fetch_array($reponse) )
The Rocket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 14h35   #2
Membre du Club
 
Inscription : décembre 2004
Messages : 116
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 116
Points : 59
Points : 59
as tu essayer de faire un affichage de la requete générée?
sleigh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 14h36   #3
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 451
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 451
Points : 7 562
Points : 7 562
Si une seule des variables est renseignée, c'est normal que la requête ne retourne rien... Remplace les AND par des OR et reteste...
Citation:
Envoyé par orafrance Voir le message
Ce forum est dédié au langage SQL, merci donc de bien vouloir vous limiter à celui-ci lors de la citation de votre code. Notamment le code PHP, étant difficilement lisible pour les profanes veuillez l'éviter
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 14h37   #4
Invité de passage
 
Inscription : août 2007
Messages : 16
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : août 2007
Messages : 16
Points : 0
Points : 0
Oula... Désolé je ne suis que débutant en sql, je n'ai que les bases. Peut tu m'expliquer ce que c'est si ça te dérange pas ?
The Rocket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 14h39   #5
Invité de passage
 
Inscription : août 2007
Messages : 16
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : août 2007
Messages : 16
Points : 0
Points : 0
J'ai déjà essayer de remplacer AND par OR mais rien n'y fait, cela ne fonctionnais toujours pas
The Rocket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 14h40   #6
Membre du Club
 
Inscription : décembre 2004
Messages : 116
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 116
Points : 59
Points : 59
Citation:
Si une seule des variables est renseignée, c'est normal que la requête ne retourne rien... Remplace les AND par des OR et reteste...
il a raison trop de "and" tue le "and"
sleigh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 14h45   #7
Membre du Club
 
Inscription : décembre 2004
Messages : 116
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 116
Points : 59
Points : 59
"SELECT * FROM football_players
WHERE (lastname=' . $lastname . '
AND firstname=' . $firstname . '
AND country=' . $country . '
AND birthday=' . $birthday . '
AND birthcity=' . $birthcity . '
AND international=' . $international . '
AND height=' . $height . '
AND weight=' . $weight . '
AND position=' . $position . '")


Ou se ferme cette parenthese? car celle a la fin est hors des ""
sleigh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 16h08   #8
Invité de passage
 
Inscription : août 2007
Messages : 16
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : août 2007
Messages : 16
Points : 0
Points : 0
Voilà j'ai remplacé AND par OR et j'ai déplacé la " ( " devant SELECT mais rien n'y fait, toujours pas de joueur à l'écran, alors que si j'enlève la requête WHERE, cela affiche tous les joueurs répertorié dans ma BDD ?!?!

Code :
1
2
3
4
5
6
7
8
9
10
("SELECT * FROM football_players
WHERE lastname=' . $lastname . '
OR firstname=' . $firstname . '
OR country=' . $country . '
OR birthday=' . $birthday . '
OR birthcity=' . $birthcity . '
OR international=' . $international . '
OR height=' . $height . '
OR weight=' . $weight . '
OR position=' . $position . '")
The Rocket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 19h09   #9
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Code :
1
2
3
4
5
6
7
8
9
10
("SELECT * FROM football_players
WHERE lastname='$lastname'
OR firstname='$firstname'
OR country='$country'
OR birthday='$birthday'
OR birthcity='$birthcity'
OR international='$international'
OR height='$height'
OR weight='$weight'
OR position='$position'")
Ceci serait amplement suffisant sans oublier de protéger vos variables (fonction mysql_real_escape_string) si besoin.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 20h05   #10
Invité de passage
 
Inscription : août 2007
Messages : 16
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : août 2007
Messages : 16
Points : 0
Points : 0
J'ai procédé comme tu me la montré mais ce coup ci cela affiche tout les joueurs et non celui ou ceux que je veut choisir par rapport à mon formulaire. Est ce mon formulaire qui n'est pas valide ?
The Rocket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 21h57   #11
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Je n'ai fait que "corriger" la requête : s'il y a une erreur de conception et sans plus de détails nous ne pouvons vous aider plus.

A noter que :
  • Les champs non remplis par l'utilisateur sont des chaînes vides (dans le contexte d'une requête SQL)
  • A en croire le code donné vous utilisez une syntaxe valable uniquement si register_globals est à On
  • Le cas des recherches en fonction de différents critères entrés par l'utilisateur via un formulaire est un sujet récurrent sur ce forum
  • Pour les développements en PHP il est conseillé d'avoir error_reporting (fonction et directive éponymes) avec une valeur d'au moins E_ALL pour que toute erreur soit signalée
  • Citation:
    Envoyé par sleigh
    as tu essayer de faire un affichage de la requete générée?
    Qu'en est-il de cette suggestion ?
julp 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 22h46.


 
 
 
 
Partenaires

Hébergement Web