44 votes

Essayer d'obtenir la propriété de non-objet dans

sur la page de contrôle :

 <?php
  include 'pages/db.php'; 
  $results = mysql_query("SELECT * FROM sidemenu WHERE `menu_id`='".$menu."' ORDER BY `id` ASC LIMIT 1", $con);
  $sidemenus = mysql_fetch_object($results);
?>

sur la page d'affichage :

 <?php foreach ($sidemenus as $sidemenu): ?>
  <?php echo $sidemenu->mname."<br />";?>
<?php endforeach; ?>

L'erreur est :

Avis : Essayer d'obtenir la propriété du non-objet dans C:\wamp\www\phone\pages\init.php à la ligne 22

Peux-tu le réparer? Je n'ai aucune idée de ce qui s'est passé.

35voto

Phil Points 48960

Consultez le manuel pour mysql_fetch_object() . Il renvoie un objet, pas un tableau d'objets.

Je suppose que tu veux quelque chose comme ça

 $results = mysql_query("SELECT * FROM sidemenu WHERE `menu_id`='".$menu."' ORDER BY `id` ASC LIMIT 1", $con);

$sidemenus = array();
while ($sidemenu = mysql_fetch_object($results)) {
    $sidemenus[] = $sidemenu;
}

Puis-je vous suggérer de jeter un œil à PDO. PDOStatement::fetchAll(PDO::FETCH_OBJ) fait ce que vous supposiez que mysql_fetch_object() ferait

10voto

alex Points 186293

Votre erreur

Avis : Essayer d'obtenir la propriété du non-objet dans C:\wamp\www\phone\pages\init.php à la ligne 22

Votre commentaire

@22 est <?php echo $sidemenu->mname."<br />";?>

$sidemenu n'est pas un objet et vous essayez d'accéder à l'une de ses propriétés.

C'est la raison de votre erreur.

5voto

james Points 1090

$sidemenu n'est pas un object , vous ne pouvez donc pas appeler de méthodes dessus. Il n'est probablement pas envoyé à votre view , ou $sidemenus est vide.

5voto

Jamie Points 1049
<?php foreach ($sidemenus->mname as $sidemenu): ?>
<?php echo $sidemenu ."<br />";?>

ou

 $sidemenus = mysql_fetch_array($results);

alors

 <?php echo $sidemenu['mname']."<br />";?>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X