Requette SQL
Résolu
parousky
Messages postés
325
Date d'inscription
Statut
Membre
Dernière intervention
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'aimerais afficher des données enregistrées dans ma base de données, alors j'ai écris ce code là :
<?php
$cod = $_GET['code'];
$req2 = $bdd->query('SELECT * FROM annonces WHERE Code =: $cod');
while($donnees = $req2->fetch())
{
?>
<p class="pseudo">
<?php echo $donnees['pseudo']; ?>
</p>
<a href="Profil.php" class="profil">Voir le profil de l'annonceur</a>
<?php
}
?>
Mais à chaque fois, j'ai l'erreur :
Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\Servicity\rechercher.php on line 233
Alors je pense que cette erreur vient du fait que la requête a été bien posée, mais je ne vois pas trop où...
Alors est-ce que le code est suffisant pour que vous puissiez voir une éventuelle erreur ?
Merci d'avance !
<?php
$cod = $_GET['code'];
$req2 = $bdd->query('SELECT * FROM annonces WHERE Code =: $cod');
while($donnees = $req2->fetch())
{
?>
<p class="pseudo">
<?php echo $donnees['pseudo']; ?>
</p>
<a href="Profil.php" class="profil">Voir le profil de l'annonceur</a>
<?php
}
?>
Mais à chaque fois, j'ai l'erreur :
Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\Servicity\rechercher.php on line 233
Alors je pense que cette erreur vient du fait que la requête a été bien posée, mais je ne vois pas trop où...
Alors est-ce que le code est suffisant pour que vous puissiez voir une éventuelle erreur ?
Merci d'avance !
A voir également:
- Requette SQL
- Logiciel sql - Télécharger - Bases de données
- Sql lister les tables ✓ - Forum Programmation
- Jointure sql ✓ - Forum MySQL
- Sql query download - Télécharger - Gestion de données
- Ora-00933: la commande sql ne se termine pas correctement ✓ - Forum Oracle
5 réponses
salut,
fais ça par étape :
pose
puis ensuite affiches là :
et executes le code SQL affiché dans ton SGBD
si ça marche pas donnes nous ce qui est affiché par echo $req2
fais ça par étape :
pose
$req2='SELECT * FROM annonces WHERE Code =: $cod';
puis ensuite affiches là :
echo $req2;
et executes le code SQL affiché dans ton SGBD
si ça marche pas donnes nous ce qui est affiché par echo $req2
Bonsoir,
Et ceci: ???
Est-ce que $cod est un entier? Si oui, évitez l'injection de code SQL:
Et ceci: ???
$cod = $_GET['code']; $req2 = $bdd->query("SELECT * FROM annonces WHERE Code =: $cod");
Est-ce que $cod est un entier? Si oui, évitez l'injection de code SQL:
$cod = (int) $_GET['code']; $req2 = $bdd->query("SELECT * FROM annonces WHERE Code =: $cod");
Non ça ne marche toujours pas... J'ai mélangez vos deux codes ( parce que Code est bien un entier), alors j'ai écris ce code là :
<?php
$cod = (int) $_GET['code'];
$req2='SELECT * FROM annonces WHERE Code =: $cod';
echo $req2;
while($donnees = $req2->fetch())
{
?>
<p class="pseudo">
<?php echo $donnees['pseudo']; ?>
</p>
<a href="Profil.php" class="profil">Voir le profil de l'annonceur</a>
<?php
}
}
?>
Et j'obtiens le message :
SELECT * FROM annonces WHERE Code =: $cod
Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\Servicity\rechercher.php on line 234
<?php
$cod = (int) $_GET['code'];
$req2='SELECT * FROM annonces WHERE Code =: $cod';
echo $req2;
while($donnees = $req2->fetch())
{
?>
<p class="pseudo">
<?php echo $donnees['pseudo']; ?>
</p>
<a href="Profil.php" class="profil">Voir le profil de l'annonceur</a>
<?php
}
}
?>
Et j'obtiens le message :
SELECT * FROM annonces WHERE Code =: $cod
Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\Servicity\rechercher.php on line 234
Bonjour,
1) Enlève les : dans ta requête SQL
2) En PHP, si tu utilises des guillemets simples, les variables ne sont pas remplacées par leur valeur. Donc '$cod' donne $cod. Utilise des guillemets doubles : "$cod" donne 876 (par exemple).
Ta ligne devient :
Ou, si tu tiens aux guillemets simples :
Xavier
1) Enlève les : dans ta requête SQL
2) En PHP, si tu utilises des guillemets simples, les variables ne sont pas remplacées par leur valeur. Donc '$cod' donne $cod. Utilise des guillemets doubles : "$cod" donne 876 (par exemple).
Ta ligne devient :
$req2 = "SELECT * FROM annonces WHERE Code = $cod";
Ou, si tu tiens aux guillemets simples :
$req2 = 'SELECT * FROM annonces WHERE Code = ' . $cod;
Xavier
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai résolu le problème ! Effectivement, les " marchent mieux que les ' pour la requête, et j'ai écris ce code là :
<?php
$cod = (int) $_GET['code'];
$req2=$bdd->query("SELECT * FROM annonces WHERE Code = $cod");
while($donnees = $req2->fetch())
{
?>
<p class="pseudo">
<?php echo $donnees['pseudo']; ?>
</p>
<a href="Profil.php" class="profil">Voir le profil de l'annonceur</a>
<?php
}
}
?>
Et ca marche nickel !
<?php
$cod = (int) $_GET['code'];
$req2=$bdd->query("SELECT * FROM annonces WHERE Code = $cod");
while($donnees = $req2->fetch())
{
?>
<p class="pseudo">
<?php echo $donnees['pseudo']; ?>
</p>
<a href="Profil.php" class="profil">Voir le profil de l'annonceur</a>
<?php
}
}
?>
Et ca marche nickel !