Récupérer données en SQL

Résolu
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
Configuration: Windows Vista
Opera 9.64

7 réponses

  1. Ouai super ça marche super

    Merci beaucoup à tous a+++++

    :-D
    1. 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. bien vu...
    2. ouais, mais ça sollicite davantage ta base de données par contre
      1. 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

    3. 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
      1. 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
        1. 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.
      2. 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... ;-)
        1. 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.
      3. 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...
        1. 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