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 23/06/2011, 16h47   #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 très longue

Bonjour à tous,
J'aimerais tester l'existence d'un "titre d'un message très long" dans ma base de données et je suis bloquée au niveau de ma requête sql.
En effet, j'ai une boucle for dans laquelle je récupère un "titre" chaque fois et j'aimerais tester à chaque fois si le "titre" existe dans ma base de données ou pas.

Ceci est le code que je voudrais faire:
Code :
$result = mysql_query("SELECT id_deal FROM deal WHERE titre ='$title1'");
Mais il me renvoie false alors que le titre existe. Par contre quand je fais le test avec une valeur de "titre" qui existe dans la base de données:
Code :
$result = mysql_query("SELECT id_deal FROM deal WHERE titre ='Ceci est le titre de la première chanson de... ' '");
il marche.

Comment dois-je exprimer la variable dans ma requête pour que ça marche?
Je vous remercie d'avance
missmiss89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 16h53   #2
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,

La syntaxe semble bonne, qu'obtiens-tu si tu fais un echo $title1; avant ta requête ?
Nheo_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 16h56   #3
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
A priori la syntaxe me parait juste. Cependant, essaye avec:

Code :
$result = mysql_query('SELECT id_deal FROM deal WHERE titre ="'.$title.'"');
Evite de mettre des chiffres dans les noms de variable.
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 16h56   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 456
Points : 8 456
ta valeur est bien formater avec mysql_real_escape_string avant j’espère ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 12h14   #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 toutes vos réponses.

Nheo
Citation:
echo $titlec;
avant la requête marche bien.

radicaldreamer merci pour le conseil concernant le nom des variables; j'ai essayé:
Citation:
$result = mysql_query('SELECT id_deal FROM deal where titre="'.$titlec'"');
mais ça ne marche toujours pas

stealth35 j'ai formaté ma variable titlec:
Citation:
$title_new=mysql_real_escape_string($titlec);
$result = mysql_query('SELECT id_deal FROM deal where titre="'.$title_new'"');
et ça ne marche toujours pas.
Comment dois-je exprimer cette variable?
missmiss89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 14h25   #6
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 encore pour toutes les réponses. Je l'ai résolu. En fait il y avait une petite erreur, au lieu de mettre un espace entre les doubles quotes et les simples quotes, je les collais. Donc voici mon code final:
Code :
1
2
$result = mysql_query("SELECT id_deal FROM deal WHERE titre=' ".$titlec." '"); 
$row=mysql_fetch_array($result);
Et ça marche.
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 01h37.


 
 
 
 
Partenaires

Hébergement Web