Probleme insertion variable dans requette sql

hibou -  
 hibou -
Bonjour,
Pourquoi ai-je cette erreur?

Fatal error: Call to a member function fetch() on a non-object in /Users/az/Sites/blog/script/originefoto.php on line 39

Voici le code:

<?php
$im = $_GET['billet_'];
echo $im;

try
{
    $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '. $e->getMessage());
}

$req = $bdd->query("SELECT nom, emplacement 
                    FROM images
                    WHERE sujet = ".$im."");
                  
while ($donnees = $req->fetch())
{
  echo "<img src ='".$donnees['emplacement'].$donnees['nom']."'/>";
}                    
?>


j'ai egalement aissayé comme ça:

<?php
$im = $_GET['billet_'];
echo $im;

try
{
    $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '. $e->getMessage());
}

$req = $bdd->query('SELECT nom, emplacement 
                    FROM images
                    WHERE sujet = '.$im.'');
                  
while ($donnees = $req->fetch())
{
  echo "<img src ='".$donnees['emplacement'].$donnees['nom']."'/>";
}                    
?>


la ligne 39 c'est celle ou il y a le while

la seule chose qui marche c'est quand j'inscris directement le contenu de la variable comme ceci:

<?php
$im = $_GET['billet_'];
echo $im;

try
{
    $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '. $e->getMessage());
}

$req = $bdd->query("SELECT nom, emplacement 
                    FROM images
                    WHERE sujet = 'dfvfv'");
                  
while ($donnees = $req->fetch())
{
  echo "<img src ='".$donnees['emplacement'].$donnees['nom']."'/>";
}                    
?>


Il y a aussi autre chose de bizarre, normalement ma variable $_GET s'intitule
$_GET['billet'], hors pour la récupérer, je suis obligé de l'appeler ainsi $_GET['billet_']
sinon j'ai une erreur m'indiquant que ma variable n'existe pas.

6 réponses

  1. astuces72 Messages postés 2146 Date d'inscription   Statut Membre Dernière intervention   1 669
     
    slt

    tu as essayé ça:
    WHERE sujet = '$im'");
    1
  2. hibou
     
    bonjour, merci pour la réponse. J'ai essayé comme ça mais ça ne fonctionne pas non plus .

    c'est bizarre, je ne comprend pas pourquoi ça ne fonctionne pas, ni pourquoi je suis obliger d'appeler ma viarible GET $_GET['billet_'] alors que je l'ai construit comme ceci:
    <div onclick="location='originefoto.php?billet = <?php echo $_GET['billet'];?>'"><?php


    ce qui devrait normalement donner $_GET['billet']
    0
  3. astuces72 Messages postés 2146 Date d'inscription   Statut Membre Dernière intervention   1 669
     
    enleve l'espace peut être !
    ?billet =<?php
    0
  4. hibou
     
    Bon enlever les espaces ne change rien. J'ai donc essayé avec une condition:
    <?php
    $im = $_GET['image_'];
    echo $im;
    
    try
    {
        $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
    }
    catch(Exception $e)
    {
            die('Erreur : '. $e->getMessage());
    }
    
    $req = $bdd->query('SELECT nom, sujet, emplacement 
                        FROM images
                      ');
                      
    while ($donnees = $req->fetch())
    {
      if($donnees['sujet']) == $im
      {  
       echo "<img src ='".$donnees['emplacement'].$donnees['nom']."'/>";
      }
    }                    
    ?>


    ce qui me renvoie l'erreur suivante:
    Parse error: syntax error, unexpected '==' (T_IS_EQUAL) in /Users/az/Sites/blog/script/originefoto.php on line 41

    la ligne 41 étant celle ou il y a le if
    0
    1. hibou
       
      bon, j'ai vu l'erreur , j'avais écris ça:
      if($donnees['sujet']) == $im

      alors que normalement, il faut mettre ça:
      if($donnees['sujet'] == $im)


      j'ai femé la ) trop tot

      cependant, ça ne résout pas mon probleme.
      Voici l'erreur qui est maintenant générée:
      Notice: Undefined index: billet_ in /Users/az/Sites/blog/script/originefoto.php on line 23
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. hibou
     
    c'est bon, ça marche avec une condition, j'ai juste changé ceci:
    $im = $_GET['billet_'];

    en ceci
    $im = $_GET['billet'];


    par je ne sais pas pourquoi ça ne fonctionne pas avec le WHERE
    0
  7. hibou
     
    heuuu non en fait ça marche plus, j'ai à nouveau cette erreur

    Notice: Undefined index: billet in /Users/az/Sites/blog/script/originefoto.php on line 23

    j'y comprend plus rien ça à fonctionné un coup, et maintenant, alors que je n'ai rien changé, ça marche plus
    0