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 14/08/2007, 03h09   #1
Invité de passage
 
Inscription : août 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 36
Points : 2
Points : 2
Par défaut [SQL] Select dans plusieurs table

Bonjour,
Je voudrais sélectionner dans la tables "hotels" le champs "auxerre" dans la collone "ville" et le pseudo du membre(Le pseudo est déjà dans l'en tête de ma page avec le session start), voici mon script:
Code :
1
2
3
4
5
6
7
8
9
10
<?php
// Combien d'entrées dans jeux_vidéos ?
$retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM hotels WHERE ville=\"auxerre\" AND pseudo=\"$pseudo\"");
$donnees = mysql_fetch_array($retour);
 
 
?>
<font color="#FF9900">
 <font size="4" face="Arial">
Vos Hôtels: <?php echo $donnees['nbre_entrees']; ?>
Je voudrais donc qu'il compte le nombre de données qui correspondes avec la ville auxerre et son pseudo ! Mais celui-ci marque "0".

Merci de votre aide.
benjam89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2007, 06h19   #2
Membre expérimenté
 
Inscription : mai 2002
Messages : 673
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 673
Points : 532
Points : 532
Houlalala...

Déjà, ta requete sent la faille de sécurité par injection de SQL ! Bref, je sais pas comment est config ton php.ini ni les vérifs que tu fais avant, mais ça sent quand même la grosse faille de sécurité qui donne accès complet à ta bdd au hacker.

Ensuite, ta requete est techniquement juste ! je pense que t'as juste aucun enregistrement qui correspond...

Je te conseil :

<?php

Code :
1
2
3
4
 
$retour = mysql_query('SELECT COUNT(id) FROM hotels WHERE lower(ville) like "auxere" AND lower(pseudo) like "'.mysql_escape_string(strtolower($pseudo)).'"') or die('erreur de requete');
 
$nb_resultat = mysql_result($retour, 0, 0);
et tu vires les mysql_escape_string() si le magic_quote_gpc est à ON dans le fichier php.ini (la commande phpinfo() te renseignera).

Enfin, très mauvaise solution de stocker le nom des villes en dur comme ça dans la BDD... le gars qui fait une faute de frape, ne sera pas compté ! En général, on utilise des clef étrangères pour ça.

D'autre part, si tu remplace auxere par une variable, utilise mysql_escape_string(strtolower($nom_ville)) à la place de auxere
gloubi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2007, 13h25   #3
Invité de passage
 
Inscription : août 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 36
Points : 2
Points : 2
D'accord, merci, je vais essayer, mais par contre, si, j'ai un ligne dans ma bdd, et normalement, elle correspond
benjam89 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 04h34.


 
 
 
 
Partenaires

Hébergement Web