Récupérer données en SQL

Résolu
GDX Messages postés 219 Date d'inscription   Statut Membre Dernière intervention   -  
GDX Messages postés 219 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Ma question est un peu difficile à poser. J'espère que je serai assez clair...

Je veux créer un forum.

Sur une page je dresse une liste avec toutes les questions précédemment posées.

L'utilisateur pourra cliquer sur une de ces questions pour visualiser la discussion entièrement.

<a href="forum_discution.php?titre=<?php echo ''. $donnees['titre'] .''; ?>" class="sujet"> <?php echo '' . $donnees['titre'] . ''; ?> </a>

Comme vous pouvez le voir, je passe le titre de la discussion en variable $_GET.

Sur la page forum_discution.php je veux récupérer dans ma base de données les discussions relatives au titre.

/* J'espère ne pas vous avoir perdu :-) */

Pour ce faire, j'ai écrit :

$retour = mysql_query('SELECT * FROM forum_resto WHERE titre=$_GET['titre']');

Mais le langage SQL ne connait pas la variable $_GET

MA QUESTION :

Comment récupérer le contenu de la vatible $_GET['titre'] pour pouvoir l'utiliser dans mysql_query() ?

Merci d'avance pour votre aide

7 réponses

PhP Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   606
 
Bsr

Et si tu encadrais le contenu de la variable $tata par des apostrophes ?
le champ titre semble être une chaîne de caractère non ?

Essai (avec en prime l'affichage de l'erreur MySQL si elle se produit ;-)

$sql = "SELECT * FROM forum_resto WHERE titre='".$tata."'";
$retour = mysql_query($sql) or die("Erreur mysql : ".mysql_error()); 

1
le_boss Messages postés 168 Date d'inscription   Statut Membre Dernière intervention   19
 
bien vu...
0
le_boss Messages postés 168 Date d'inscription   Statut Membre Dernière intervention   19
 
Bonjour

t'as pas encore essayé ça ?

$tata = $_GET['titre'];

$retour = mysql_query('SELECT * FROM forum_resto WHERE titre=$tata');

simple, mais il fallait y penser...
0
GDX Messages postés 219 Date d'inscription   Statut Membre Dernière intervention   9
 
Ca ne me donne pas la même erreur :

Avec $_GET :

Parse error: parse error in C:\wamp\www\AGIO\forum_discution.php on line 120

sur la ligne : $retour = mysql_query('SELECT * FROM forum_deco WHERE titre=$GET['titre']');

Avec le $tata

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\AGIO\forum_discution.php on line 133

sur le ligne : while ($donnees = mysql_fetch_array($retour))

Merci pour votre réponse
0
le_boss Messages postés 168 Date d'inscription   Statut Membre Dernière intervention   19
 
cette erreur, tu l'aurais aussi eue si ça avait marché avec $_GET je pense... là ça marche avec $tata donc il rencontre une erreur à un endroit que le script avec $_GET n'atteignait même pas car il rencontrait une erreur avant. (euh je suis sûrement pas clair, là...)

mais là comme ça sans en savoir plus, j'ai de la peine à te dire d'où vient le problème de la 2e erreur


PS: tu aurais appris à coder sur le site du zéro que ça ne m'étonnerait pas... ;-)
0
GDX Messages postés 219 Date d'inscription   Statut Membre Dernière intervention   9
 
Le problème c'est que j'ai essayé mon code sans $GET et sans $tata et la ça fonctinne bien.

Je ne vois pas d'où vient le problème.
0
le_boss Messages postés 168 Date d'inscription   Statut Membre Dernière intervention   19
 
ah ok voilà qui est intéressant...

ton titre contient des espaces et des accents j'imagine ?

problème d'encodage de caractères alors je pense

tu peux essayer en faisant: $tata = htmlspecialchars($_GET['titre']);

et si ça marche pas... ça peut venir de l'encodage de tes pages qui est différent de l'une à l'autre
0
GDX Messages postés 219 Date d'inscription   Statut Membre Dernière intervention   9
 
Je n'avais ni espace ni guillemet : j'ai quand même essayé le htmlspecialchars mais rien n'y fait, j'ai toujours la même erreur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
GDX Messages postés 219 Date d'inscription   Statut Membre Dernière intervention   9
 
J'ai trouvé une technique pour contrer ce problème :

$retour = mysql_query('SELECT * FROM forum_deco');

while ($donnees = mysql_fetch_array($retour))
{
if($donnees['titre'] == $_GET['titre'])
{

[...];
}
}

Voila voila

Merci et a+ pour d'autres aventures
0
le_boss Messages postés 168 Date d'inscription   Statut Membre Dernière intervention   19
 
ouais, mais ça sollicite davantage ta base de données par contre
0
PhP Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   606
 
Bjr

Tu es très gentil Boss !


J'ai trouvé une technique pour contrer ce problème :

C'est pas une technique c'est n'importe quoi : sauf à avoir besoin d'effectuer un traitement précis sur chaque enregistrement, on ne lit pas une table de A à Z pour ensuite la parcourir en mémoire et ne retenir qu'un seul enregistrement tout ça parce que la clause where est un peu récalcitrante ! LOL



0
GDX Messages postés 219 Date d'inscription   Statut Membre Dernière intervention   9
 
Ouai super ça marche super

Merci beaucoup à tous a+++++

:-D
0