2016-07-05 10 views
1

私は現在、私のMySQLのテーブルの私の列からナビゲーションメニューを作ろうとしています。私は助けが必要ですMySQLのクエリオブジェクトを文字列に変換する

さて、私のPHPクラスのデータベースファイルで、私はこの機能を持っているので:

public function get_food_type(){ 
return $this->query("SELECT food_type FROM menu"); 
} 

をそして、他のファイルで、私は次のコードを持っている:

<?php 

require_once('Includes/wzDB.php'); 

$content = "<div id=\"menu\">" 
. "< nav id=\"food\" >" 
. "<ul>" 
. $type=wzDB::getInstance()->get_food_type(); 
    print($type); 
     if($type->num_rows>0){ 
     while($row = $type->fetch_assoc()){ 
      echo "<li>" . htmlspecialchars($row['food_type']) . "</li>"; 
     } 
     } 

    "</ul>" 
. "</nav>" 
. "< /div>"; 

をしかし、私は実行しようとすると、ファイルに次のエラーメッセージが表示されます

Catchable fatal error: Object of class mysqli_result could not be converted to string in C:\xampp\new_directory\htdocs\Wu_Zen2\menu.php on line 8

このエラーを修正するにはどうすればよいですか?

答えて

2

mysqli_query()は、$result変数にオブジェクトリソースを返します。したがって、文字列ではありません。

あなたはmysqli_fetch_assoc()を使用してレコードにアクセスし、それをループする必要があると:

$content = "<div id=\"menu\">" 
... 
while ($row = mysqli_fetch_assoc($result)) { 
    $content .= "<li>" . htmlspecialchars($row['food_type']) . "</li>"; 
} 
... 
$content .= "</ul>" 

$content文字列を終了するために、あなたのループの後$content .= "</ul>"を使用することを忘れないでください。

$result変数を使用する前に、上記のように$row = mysql_fetch_array($result)またはmysqli_fetch_assoc()を使用する必要があります。

$row = mysql_fetch_array($result);

+0

非常に高く評価されました! – CFl

1

あなたは、文字列$contentからget_food_type()の復帰を連結しようとしています。

$コンテンツ文字列を終了する必要がある場合は、whileループで$ content変数に追加できます(.=を使用)。

$content = "<div id=\"menu\">" 
. "< nav id=\"food\" >" 
. "<ul>"; 
$type=wzDB::getInstance()->get_food_type(); 
print($type); 
if($type->num_rows>0){ 
    while($row = $type->fetch_assoc()){ 
     $content .= "<li>" . htmlspecialchars($row['food_type']) . "</li>"; 
    } 
} 
$content .= "</ul>" 
. "</nav>" 
. "< /div>"; 
+0

さて、私はそれを行い、印刷物を取り除く必要がありました。そしてありがとう! :D – CFl

関連する問題