-1
我正在嘗試使用php & MySQLi製作菜單子菜單。 我有這個表: 使用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的函數不起作用,是什麼問題?
比你!
你是什麼意思,它「不起作用」。任何錯誤?任何警告? – slugonamission
以下變量在此函數display_menu中未定義:$ cat_id_db,$ name_db,$ parent_id_db。這就是爲什麼,也許你的功能沒有得到正確執行。你可以在這個函數中定義這些變量,或者將它們作爲參數傳遞給這個函數。 –
如果我刪除if($ query-> num_rows)這我得到錯誤致命錯誤:調用成員函數bind_param()在非對象在C:\ xampp \ htdocs \ ... – user3297094