Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用MySQLi制作PHP菜单子菜单系统_Php_Mysql_Menu_Mysqli_Submenu - Fatal编程技术网

用MySQLi制作PHP菜单子菜单系统

用MySQLi制作PHP菜单子菜单系统,php,mysql,menu,mysqli,submenu,Php,Mysql,Menu,Mysqli,Submenu,我正在尝试用php和MySQLi制作菜单子菜单。 我有这张桌子: 我有以下php代码: function my_menu($parent_id=0){ $connection = mysql_connect("localhost","root","root"); mysql_select_db("a_personality",$connection); $query = mysql_query("SELECT * FROM categor

我正在尝试用php和MySQLi制作菜单子菜单。 我有这张桌子:

我有以下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>";
            }
}
功能我的菜单($parent\u id=0){
$connection=mysql_connect(“localhost”、“root”、“root”);
mysql_select_db(“a_personality”,$connection);
$query=mysql\u query(“从父级\u id={$parent\u id}的类别中选择*);
if(mysql_num_行($query)){
回声“
    ”; 而($res=mysql\u fetch\u assoc($query)){ 回声“
  • ”; echo$res['name']; 显示菜单($res['cat_id'); 回声“
  • ”; } 回声“
”; } }
但我必须用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\u conn,$parent\u id=0){
$query=$mysqli\u conn->prepare(“从父对象id=?”的类别中选择类别id、名称、父对象id”);
$query->bind_参数('i',$parent_id);
$query->execute();
$query->bind_result($cat_id_db、$name_db、$parent_id_db);
如果($query->num\u行){
回声“
    ”; 而($query->fetch()){ 回声“
  • ”; echo$name_db; 回显“警报('''.$parent_id_db.');”; 显示菜单($mysqli\u conn,$parent\u id\u db); 回声“
  • ”; } 回声“
”; } }
使用mysqli调用的函数如下:dispay\u菜单($mysqli\u conn) 问题是我的mysqli功能不起作用,有什么问题

比你强

更换

dispay_menu($mysqli_conn,$parent_id_db);


当前,您总是使用父id调用子菜单
0

您认为它“不工作”是什么意思。有错误吗?任何警告?此函数显示菜单中未定义以下变量:$cat\u id\u db、$name\u db、$parent\u id\u db。这就是为什么,可能您的函数没有得到正确执行。您可以在此函数中定义这些变量,也可以将它们作为参数传递给此函数。如果我删除if($query->num_rows)此I get错误致命错误:在C:\xampp\htdocs\…@KanishkDudeja中对非对象调用成员函数bind_param(),这些变量由
mysqli_stmt::bind_result()创建
如果
$query
不是对象,则添加
echo$mysqli\u conn->错误
$mysqli_conn->prepare()之后调用。再次不起作用:(如果我删除if($query->num_行),我会得到错误和致命错误:调用C:\xampp\htdocs中非对象上的成员函数bind_param()。。。。
dispay_menu($mysqli_conn,$cat_id_db);