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 29/06/2011, 10h34   #1
Invité régulier
 
Femme
Étudiant
Inscription : juin 2011
Messages : 37
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 37
Points : 6
Points : 6
Par défaut Requête sql avec test d'une variable

Bonjour à tous,
J'aimerais sélectionner l'identifiant de la ville chaque fois que le nom est Paris. Lorsque je fais ce ceci:
Code :
1
2
3
4
5
6
7
8
 
$p=0;
$requete = mysql_query("SELECT id_ville FROM ville WHERE nom='Paris'"); 
while($reponse=mysql_fetch_array($requete))
{
				$req_rep[$p]=$reponse['id_ville'];
				$p++;}
				print_r($req_rep);
Il marche bien et m'affiche bien tous id_ville lorsque nom='Paris'.
Mais lorsque je fais ceci:
Code :
1
2
3
4
5
6
7
8
 $vill='Paris';
		     $p=0;
			 $requete = mysql_query("SELECT id_ville FROM ville WHERE nom=' ".$vill." '"); 
             while($reponse=mysql_fetch_array($requete))
				{
				$req_rep[$p]=$reponse['id_ville'];
				$p++;}
				print_r($req_rep);
Il ne m'affiche rien. Même si je fais ou Je ne comprends pas pourquoi.
Comment dois-je déclarer cette variable?
Je vous remercie d'avance.
missmiss89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 10h48   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Enlèves les espaces: ' Paris ' n'est pas 'Paris'.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 10h48   #3
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
Comme ceci

Code :
1
2
3
 
 
$requete = mysql_query("SELECT id_ville FROM ville WHERE nom=".$vill);
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 11h08   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Citation:
Envoyé par MaitrePylos Voir le message
Comme ceci

Code :
1
2
3
 
 
$requete = mysql_query("SELECT id_ville FROM ville WHERE nom=".$vill);
Personnellement j'aime pas trop enlever les quotes, qu'est ce qu'il se passe s'il mets $ville = "Saint Germain les Prés" ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 11h11   #5
Invité régulier
 
Femme
Étudiant
Inscription : juin 2011
Messages : 37
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 37
Points : 6
Points : 6
Merci pour vos réponses mais ça ne marche toujours pas.
missmiss89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 11h17   #6
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Code :
1
2
$ville = 'Paris';
mysql_query("SELECT id_ville FROM ville WHERE nom='{$ville}'");
Par ailleurs tu t'es trompée dans le nom des variables: le résultat renvoyé par mysql_query est la réponse (et non la requête) quand au résultat renvoyé par mysql_fetch_*, c'est un tuple (et non une réponse).

Mais bon c'est un détail.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/06/2011, 11h19   #7
Invité régulier
 
Femme
Étudiant
Inscription : juin 2011
Messages : 37
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 37
Points : 6
Points : 6
Benjamin Delespierre lorsque je mets
Code :
$vill = "Saint Germain les Prés";
il n'affiche toujours rien (normal car je n'ai pas cette ville dans ma table); mais même avec
Code :
$vill="Aix-en-Provence";
(qui est une ville de ma table), il n'affiche toujours rien
missmiss89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 11h32   #8
Invité régulier
 
Femme
Étudiant
Inscription : juin 2011
Messages : 37
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 37
Points : 6
Points : 6
Merci Benjamin Delespierre ça marche. Et merci aussi pour les noms de variables.
missmiss89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 11h41   #9
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Pour aller plus loin, voici un exemple de comment sécuriser ses requêtes:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
$connexion = mysql_connect('localhost', 'root', '');
 
$ville = "Paris"; // peut provenir d'un forumlaire par exemple
$ville = mysql_real_escape_string($ville, $connexion);
$requete = "SELECT `id_ville` FROM `villes` WHERE `nom`='{$ville}'";
if ($resultats = mysql_query($requete)) {
  while ($ligne_courante = mysql_fetch_assoc($resultats)) {
     echo "L'id de {$ville} est {$ligne_courante['id_ville']}";
  }
}
else {
  // on est jamais à l'abri d'une erreur
  echo "Erreur dans la requete de selection";
}
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 10h42   #10
Invité régulier
 
Femme
Étudiant
Inscription : juin 2011
Messages : 37
Détails du profil
Informations personnelles :
Sexe : Femme

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 37
Points : 6
Points : 6
Merci Benjamin Delespierre.
missmiss89 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 02h32.


 
 
 
 
Partenaires

Hébergement Web