Problème de PDO dans php5...

Résolu/Fermé
woody35 Messages postés 30 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 25 août 2011 - 26 oct. 2010 à 18:58
woody35 Messages postés 30 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 25 août 2011 - 31 oct. 2010 à 08:22
Bonjour,

Bonjour,

Je "bidouille" un peu de php/sql pour mon site web, j'ai une erreur que je n'arrive pas a m'expliquez.

Voici l'erreur:

Fatal error: Call to a member function execute() on a non-object in /htdocs/public/www/essai/includes/menu_start.php on line 12

Voici le code:

<?php
include("admin/verif.php");
$repon_sur=$bdd->query('SELECT * FROM sur_menu ');
$repon_sur->setFetchMode(PDO::FETCH_OBJ);
while ($surmenu = $repon_sur->fetch() )
{
$surmenu2=$surmenu->emplacement;?>
<div class="menu_haut"><?php echo $surmenu->TITRE; ?></div>
<div class="menu_fond">
<ul class="niveau1">
<?php $repcont = $bdd->prepare('SELECT * FROM menu WHERE emplacement = ? ORDER BY ordre ');
$repcont -> execute(array($surmenu2));
while ($menu_cont = $repcont->fetch() )
{ $sous_menu=$menu_cont['titre']; $url=$menu_cont['url'];
if ($url != "999")
{
echo "<li><a href=\"../index.php?page="; echo $url;echo "\">"; echo $sous_menu; echo"</a></li>";
}
else
{
echo "<li><a>"; echo $sous_menu; echo "</a>";?>
<ul class="niveau2">
<?php $reponse = $bdd->prepare('SELECT * FROM categorie WHERE surcat = ? ORDER BY ordre ');
$reponse -> execute(array($sous_menu));
while ($donnees = $reponse->fetch(PDO::FETCH_OBJ) )
{ ?>
<li><a href="index.php?page=tarif&&cate=<?php echo $donnee->cat;?>"> <?php echo $donnees->cat;?></a></li>
<?php } $reponse->closeCursor(); ?>
</ul>
<?php }} ?>
</ul>
</div>
<div class="menu_bas"></div>
<?php } $reponse->closeCursor();?>

si quelqu'un a un solution, je suis preneur.

Merci d'avance



2 réponses

avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
26 oct. 2010 à 20:53
Salut.

L'erreur signifie que tu ne peux pas appeler la méthode "execute()" d'un non-objet.

Si $repcont n'est pas un objet (qui normalement devrait être un objet PDOStatement), c'est parce qu'il y a eu une erreur dans la ligne précédente.

Pour savoir laquelle, tu peux utiliser la structure « try ... catch » car PDO gère les exceptions. Si aucune erreur sort, essaye en modifiant le niveau d'alerte (cf. ici)
0
woody35 Messages postés 30 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 25 août 2011 7
30 oct. 2010 à 10:58
Merci je vais essayé le try catch cette aprem et voir ce que ca donne...
0
woody35 Messages postés 30 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 25 août 2011 7
31 oct. 2010 à 08:22
Salut,

Une petite erreur de pas grand chose... mais j'oubliais "d'ouvrir" ma bdd sql.

Merci pour tous
0