PHP-Funktionsproblem

  • Der Versuch, ein db-gesteuertes Menü zu generieren, das auf der Parent- & gt; child-Struktur basiert. Alle übergeordneten Spaltenwerte der Stammmenüelemente sind 0. Geeting folgende Fehler ständig

     Undefined offset: 0,1,2 on line list($id, $parent, $name) = $results; 
    
     Undefined index on line  array_key_exists() expects exactly 2 parameters, 1 given on line   if (!array_key_exists($tree[$parent]['children'][$id])) {
    
    Warning: array_key_exists() expects exactly 2 parameters, 1 given on line   if (!array_key_exists($tree[$parent]['children'][$id])) {
     

    PHP CODE < / strong>

     <?php
    
    function generateMenu($parent, $level, $menu, $utype) {
        global $db;
        $tree = array();
        $stmt = $db->prepare("select id, parent, name FROM navigation WHERE menu=? AND user_type=?") or die($db->error);
        $stmt->bind_param("ii", $menu, $utype) or die($stmt->error);
        $stmt->execute() or die($stmt->error);
        $stmt->store_result();
        $meta = $stmt->result_metadata();
        $bindResult = array();
        while ($columnName = $meta->fetch_field()) {
            $bindResult[] = &$results[$columnName->name];
        }
        call_user_func_array(array($stmt, 'bind_result'), $bindResult);
        while ($stmt->fetch()) {
            list($id, $parent, $name) = $results;
            $tree[$id] = array('name' => $name, 'children' => array(), 'parent' => $parent);
            if (!array_key_exists($id, $tree[$parent]['children'])) {
                $tree[$parent]['children'][$id] = $id;
            }
        }
        $stmt->close();
        print_r($tree);
    }
    
    ?>
     

    Und DB-Struktur

    PHP-Funktionsproblem

    Zu Testzwecken

    • Versuchte die(print_r($results)); direkt nach while ($stmt->fetch()) {. Erste Zeile meiner DB-Tabelle als Array ( [id] => 1 [parent] => 0 [name] => Sual ) 1 abrufen.
    • Versucht while ($results=$stmt->fetch()) { anstelle von while ($stmt->fetch()) {. Die folgenden Fehler wurden erneut angezeigt.

      Undefinierter Index in Zeile array_key_exists () erwartet genau 2 Parameter, wobei 1 in der Zeile angegeben ist if (! Array_key_exists ($ tree [$ parent] ['children']] $ id])) {

      Warnung: array_key_exists () erwartet genau 2 Parameter, wobei 1 in der Zeile angegeben ist if (! array_key_exists ($ tree [$ parent] ['children']] [ $ id])) {

    • Versuchte if (!array_key_exists($id, $tree[$parent]['children'])) { anstelle von if (!array_key_exists($tree[$parent]['children'][$id])) {. Folgende Fehler wurden erneut gemeldet:

      Undefinierter Offset: 0,1,2-Zeilenliste ($ id, $ parent, $ name) = $ results;

    Kann nicht herausfinden, was falsch ist. Bitte helfen Sie, dieses Problem zu beheben

    22 November 2011
    Tural Ali
1 answer
  •  // Versuchen Sie, die Listenwerte wiederzugeben 
     // Ihre Syntax ist falsch. 
     array_key_exists ($ yourKey, $ yourSearchArray); 
     
    22 November 2011
    Sudhir Bastakoti