2014-05-19 62 views
-1

我正在嘗試使用php & MySQLi製作菜單子菜單。 我有這個表: enter image description here使用MySQLi製作PHP菜單子菜單系統

而且我有這樣的PHP代碼:

function my_menu($parent_id=0){ 
    $connection = mysql_connect("localhost","root","root"); 
      mysql_select_db("a_personality",$connection); 
      $query = mysql_query("SELECT * FROM categories WHERE parent_id = {$parent_id}"); 

      if(mysql_num_rows($query)){ 
       echo "<ul>"; 
       while($res = mysql_fetch_assoc($query)){ 
        echo "<li>"; 
        echo $res['name']; 
        dispay_menu($res['cat_id']); 
        echo "</li>"; 
       } 
       echo "</ul>"; 
      } 
} 

但我必須把它與庫MySQLi寫的,我這樣做:

function dispay_menu($mysqli_conn,$parent_id=0){ 

      $query = $mysqli_conn->prepare("SELECT cat_id,name,parent_id FROM categories WHERE parent_id = ?"); 
      $query->bind_param('i',$parent_id); 
      $query->execute(); 
      $query->bind_result($cat_id_db,$name_db,$parent_id_db); 


      if($query->num_rows){ 
       echo "<ul>"; 
       while($query->fetch()){ 
        echo "<li>"; 
        echo $name_db; 
        echo "<script>alert('".$parent_id_db."');</script>"; 
        dispay_menu($mysqli_conn,$parent_id_db); 
        echo "</li>"; 
       } 
       echo "</ul>"; 
      } 
} 

功能的的mysqli我這樣稱呼:dispay_menu($ mysqli_conn); 問題是我用mysqli的函數不起作用,是什麼問題?

比你!

+0

你是什麼意思,它「不起作用」。任何錯誤?任何警告? – slugonamission

+0

以下變量在此函數display_menu中未定義:$ cat_id_db,$ name_db,$ parent_id_db。這就是爲什麼,也許你的功能沒有得到正確執行。你可以在這個函數中定義這些變量,或者將它們作爲參數傳遞給這個函數。 –

+0

如果我刪除if($ query-> num_rows)這我得到錯誤致命錯誤:調用成員函數bind_param()在非對象在C:\ xampp \ htdocs \ ... – user3297094

回答

0

更換

dispay_menu($mysqli_conn,$parent_id_db); 

dispay_menu($mysqli_conn,$cat_id_db); 

目前您隨時來電與父ID 0子菜單。

+0

再次不工作:(如果我刪除if($ query-> num_rows),我得到錯誤 而致命錯誤:調用成員函數bind_param() C:\ XAMPP \ htdocs中.... – user3297094