2014-05-19 2 views
-1

Я пытаюсь сделать menu-submenu с php & MySQLi. У меня есть эта таблица: enter image description hereСоздание 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>"; 
      } 
} 

Но я должен написать его с 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); 

В настоящее время вы всегда вызвать подменю с родительским идентификатором 0.

+0

Снова не работает :(Если я удалю if ($ query-> num_rows), я получу ошибку И Неустранимая ошибка: вызовите функцию-член bind_param() на не-объект в C: \ XAMPP \ HTDOCS .... – user3297094

Смежные вопросы