Probleme insertion variable dans requette sql

Fermé
hibou - Modifié par hibou le 27/08/2013 à 02:54
 hibou - 27 août 2013 à 14:23
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.



A voir également:

6 réponses

astuces72 Messages postés 7769 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 20 mars 2025 1 640
Modifié par astuces72 le 27/08/2013 à 08:12
slt

tu as essayé ça:
WHERE sujet = '$im'");
1
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
astuces72 Messages postés 7769 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 20 mars 2025 1 640
27 août 2013 à 12:09
enleve l'espace peut être !
?billet =<?php
0
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
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

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

Posez votre question
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
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