IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Valeur GET ne passe pas dans le Query


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de chrisl0
    Homme Profil pro
    Par là ;)
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Par là ;)

    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Par défaut Valeur GET ne passe pas dans le Query
    bonjour,
    voila jai une page nomé recette.php cette page affiche des recettes mai de plusieur table. je m'explique dans mon menu de gauche jai mes lien dans se style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <a href="recettes.php?tb=dessert">voir tous les desserts</a>
    <a href="recettes.php?tb=entree">voir toutes les entrées</a>
    tb = au nom de la table dans mysql que jenvoie en _GET sur la page dessert
    mon probleme arrive maintenant enfaite en bas de chaque recette je voudrai que lon puisse poster un commentaire c'est simple a faire mais quand je veu envoyer le commentaire pour ecrire dans la base de donner sa va pas sa maffiche :

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\easyphp\www\test_\pages\recette.php

    jai l'impresseion qu'il ne garde pas la variable $tb en memoire. quand je le met comme sa va pas:
    $reponse = mysql_query('SELECT * FROM '.$tb.' ORDER BY id DESC LIMIT
    mais si je le met comme sa va:
    $reponse = mysql_query('SELECT * FROM dessert ORDER BY id DESC LIMIT

    mais comme c'est une page pour plusieur table je ne peu pas mettre un nom de table.

    comment je peu faire??

    merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il faut recuperer la valeur du get :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $tb = mysql_real_escape_string($_GET['tb']);
    $reponse = mysql_query('SELECT * FROM '.$tb.' ORDER BY id');
    Par contre separer des elements de meme nature (recette) ayant juste une caracteristique differente (entree, plat, dessert) dans des tables differentes c'est une hérésie mais c'est un autre sujet
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé Avatar de chrisl0
    Homme Profil pro
    Par là ;)
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Par là ;)

    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Par défaut
    ha ok
    moi je le récupérais juste avec sa $tb = $_GET['tb'] ; ok je vai essayer ton truc je te remercie.
    tu peu rentrer plus dans les detaille de ton fin de post stp ??

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Cela fonctionne de le récupérer comme tu l'indiques.
    mysql_real_escape_string() sert à sécuriser la valeur reçu.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    Sabotage t'a dit qu'avoir une table par type de recette est une hérésie.
    Tu devrait avoir une table recettes et une table type de recettes. Et pour chaque recette, tu indique la clé de la table type correspondante.

  6. #6
    Membre confirmé Avatar de chrisl0
    Homme Profil pro
    Par là ;)
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Par là ;)

    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Par défaut
    re bonjour

    Bon j'ai fait ma page qui affiche la recette. sa fonctionne très bien
    Mais quand je rajoute la partie avec le commentaire sa va plus du tout
    je vous fait voir toute la,page pour mieux comprendre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
     
         <?php
     
    //On se connecte
    connectMaBase();
    $tb = mysql_real_escape_string($_GET['tb']);
    $retour = mysql_query('SELECT * FROM '.$tb.' WHERE ID = "'.mysql_real_escape_string($_GET["id"]).'"');
    if ($donnees = mysql_fetch_array($retour))
    {
            print '<div align="center">
      <center>
      <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="80%" height="626">
        <tr>
          <td width="12%" height="32"><h3>Nb de personnes:</h3></td>
          <td width="16%" height="32"><h4>'.$donnees["nbp"].'</h4></td>
          <td width="1%" height="32">
          <img border="0" src="../../mille_et_une_recettes_php-net/images/temps.jpg" width="21" height="21"></td>
          <td width="8%" height="32"><h3>Préparation:</h3></td>
          <td width="18%" height="32"><h4>'.$donnees["duree"].'</h4></td>
          <td width="1%" height="32">
          <img border="0" src="../../mille_et_une_recettes_php-net/images/temps_cuisson.jpg" width="21" height="19"></td>
          <td width="6%" height="32"><h3>Cuisson:</h3></td>
          <td width="13%" height="32"><h4>'.$donnees["dureec"].'</h4></td>
          <td width="1%" height="32"></td>
          <td width="7%" height="32"><h3>Difficulté:</h3></td>
          <td width="17%" height="32"><h4>'.$donnees["difficulte"].'</h4></td>
        </tr>
        <tr>
          <td width="100%" height="17" colspan="11"></td>
        </tr>
        <tr>
          <td width="11%" height="14"><h3>Ingrédients:</h3></td>
          <td width="89%" height="71" colspan="10" rowspan="2"><h4>'.nl2br(stripslashes($donnees['ingredients'])).'</h4></td>
        </tr>
        <tr>
          <td width="11%" height="57"></td>
        </tr>
        <tr>
          <td width="100%" height="10" colspan="11"></td>
        </tr>
        <tr>
          <td width="11%" height="7"><h3>Phase technique:</h3></td>
          <td width="89%" height="64" colspan="10" rowspan="2"><h4>'.nl2br(stripslashes($donnees['phasetechnique'])).'</h4></td>
        </tr>
        <tr>
          <td width="11%" height="57"></td>
        </tr>
        <tr>
          <td width="100%" height="22" colspan="11">&nbsp;</td>
        </tr>
        <tr>
          <td width="11%" height="11"><h3>Conseils:</h3></td>
          <td width="89%" height="93" colspan="10" rowspan="2"><h4>'.nl2br(stripslashes($donnees['conseil'])).'</h4></td>
        </tr>
        <tr>
          <td width="11%" height="74"></td>
        </tr>
        <tr>
          <td width="100%" height="1" colspan="11" align="center"></td>
        </tr>
        <tr>
          <td width="100%" height="16" colspan="11" align="center">
          <img border="0" src="../../mille_et_une_recettes_php-net/images/imprimer.jpg" width="29" height="23">
          <a target="_blank" href="imprim_recettes.php?tb=' . $tb . '&amp;id=' . $donnees['id'] . '">Imprimer 
          cette recette</a> (sans les commentaires)</td>
        </tr>
        <tr>
          <td width="100%" height="1" colspan="11"></td>
        </tr>
        <tr>
          <td width="100%" height="9" colspan="11" align="center"></td>
        </tr>
        <tr>
          <td width="100%" height="10" colspan="11" align="center"><hr></td>
        </tr>
        <tr>
          <td width="100%" height="6" colspan="11" align="center"></td>
        </tr>
        <tr>
          <td width="11%" height="209"></td>
          <td width="72%" height="209" colspan="9" align="center">
          <fieldset>
           <legend>Laissez-votre commentaire sur cette recette</legend>
                 <form name="livre" method="post" action="voir_recette.php">
            <p>
                Pseudo : <input name="pseudo" size="20" /><br />
                Message :<br />
                <textarea name="commentaire" rows="8" cols="35"></textarea><br />
                <input type="submit" neme="envoyer" value="Envoyer" onclick="javascript: return verif();"/>
            </p>
        </form>   
       </fieldset>?>
       <?php
     
     
    connectMaBase(); //Connexion à la base de données
    $tb = mysql_real_escape_string($_GET['tb']);
     
    // --------------- Etape 1 -----------------
    // Si un message est envoyé, on l'enregistre
    // -----------------------------------------
    if (isset($_POST["pseudo"])) $pseudo=htmlentities(trim($_POST["pseudo"]));
       else $pseudo="";
    if (isset($_POST["commentaire"])) $message=htmlentities(trim($_POST["commentaire"]));
       else $commentaire="";
     
    if(!get_magic_quotes_gpc() )     {     $pseudo =addslashes($pseudo);   }
          else       {             $pseudo =str_replace("'","''",$pseudo);       }
    if(!get_magic_quotes_gpc() )     {    $message =addslashes($commentaire);     }
          else       {             $message =str_replace("'","''",$commentaire);       }
     
     
     
        $message = nl2br($message); 
     
     if ($pseudo!="" && $message!="")
      { 
       mysql_query("INSERT INTO '.$tb.' VALUES('', '" . $pseudo . "', '" . $commentaire . "')");
      }
     
    ?>
          </td>
          <td width="17%" height="209" align="center">
          &nbsp;</td>
        </tr>
          <tr>
          <td width="11%" height="13"></td>
          <td width="72%" height="13" colspan="9" align="center">
          </td>
          <td width="17%" height="13" align="center">
            </td>
          </tr>
          <tr>
          <td width="11%" height="109"></td>
          <td width="72%" height="109" colspan="9" align="center">
          <?php
          // --------------- Etape 2 -----------------
          // On affiche le commentaire envoyer
          // -----------------------------------------
          $reponse = mysql_query('SELECT * FROM '.$tb.' ORDER BY id DESC LIMIT ');
     
    while ($donnees = mysql_fetch_array($reponse))
    {
            echo "
       <fieldset>
           <legend>". $donnees['pseudo'] ." à écrit :</legend>
    
           <label>". $donnees['commentaire'] ."</label>   
       </fieldset>
    ";
    }
     
    mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
    ?><?php
          </td>
          <td width="17%" height="109" align="center">
          </td>
          </tr>
      </table>
      </center>
    </div>
     
            ';
    }
    else
    {
    	print("La recette n'existe pas !");
    }
    ?>
    l'erreur se situe a partie de l'etape 1 sa ma'affiche ceci comme erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parse error: parse error in c:\easyphp\www\test_\pages\voir_recettes.php on line 133
    et franchement je voie pa ou il y a une erreur

    jai essayer d'enlerver cette parti la:
    connectMaBase(); //Connexion à la base de données
    $tb = mysql_real_escape_string($_GET['tb']);
    qui est en double et sa maffiche une erreur sur le commentaire

    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 15/12/2006, 07h34
  2. Trouver une valeur qui n'est pas dans un champ
    Par eric41 dans le forum Requêtes
    Réponses: 6
    Dernier message: 16/05/2006, 16h48
  3. Ctrl -] ne passe pas dans une console avec vim
    Par Celelibi dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 10/03/2006, 13h35
  4. Réponses: 8
    Dernier message: 26/10/2005, 03h52
  5. Une valeur ne s'affiche pas dans un champ texte
    Par KibitO dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/03/2005, 20h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo