tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
505
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    hafa hafa ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    17
    Hallo,
    kann mir einer sagen was ich bei diesem Script falsch mache!
    bekomme immer den Fehlercode:
    Oder fehlt da ne Datei?

    Fatal error: Call to a member function query() on a non-object in \navi\index.php on line 17

    http://www.tutorials.de/forum/php-tu...von-mysql.html

    Bin für jede Hilfe Dankbar!!
     

  2. #2
    Avatar von forsterm
    forsterm forsterm ist offline Mitglied Rubin
    Registriert seit
    Nov 2004
    Ort
    Bayern
    Beiträge
    1.328
    Hallo,
    poste doch mal deinen Quellcode, denn ohne können wir auch nur raten
    und das wirst du doch bestimmt nicht wollen.

    mfg
    forsterm
     
    Wie man Fragen richtig stellt

    Wichtig:
    Bitte markiert eure beantworteten Fragen als "erledigt" (links unten auf "Erledigt" klicken).
    __________________
    .:Mitglied #26 des 1. offiziellen Sven Uwe Fan-Clubs:.

  3. #3
    hafa hafa ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    17
    PHP-Code:
    <?php

    /**
     * @author David Däster und Simon Däster
     * @package JClubCMS
     * Index.php
     * License: GPL
     *
     * Diese Seite ist für die Anzeig der Navigation veranwortlich
     * und lädt die notwendigen Module
     */


    /* Verbindung zur Datenbank*/
    include ("include/config.php");

    $mysql->query("SELECT menu_ID, menu_name FROM menu WHERE menu_topid=0 ORDER BY menu_position ASC");
    $nav_array = array();
    $i 0;
    while (
    $nav_data $mysql->fetcharray()) {
        
    $nav_array[$i] = array('menu_ID'=>$nav_data["menu_ID"], 'menu_name'=>$nav_data["menu_name"]);
        
    $i++;
    }

    //$smarty->assign("nav", $nav_array);

    /** Kontrolle der Get-Variable $_GET['nav_id']. Zur Vereinfachung in $nav_id gespeichert*/
    $nav_id = (int) $_GET["nav_id"];
    if (
    $nav_id <= 0) {
        
    $nav_id $nav_array[0]['menu_ID'];
    }


    /**
     * Hier werden alle Verweise ausgelesen: ID, höhere Navigation (topid), Position, Name,
     * zugehörige Seite (page) und ob Modul oder Page £
     */
    $mysql->query("SELECT * FROM menu WHERE menu_ID = $nav_id");
    $page_data $mysql->fetcharray();

    $page_id $page_data["menu_page"];





    /**
     * Hier folgt das 
     * ***************M E N U ***************
     * ES wird kompliziert
     */


    /**
     * Der gerade aktive Navigationslink und alle direkt darüberliegende Links
     * werden im Array $root_array gespeichert.
     * 
     * Aufbau:
     * topid: 0     -Gallery
     *                 -Gästebuch
     * Und dann gehts weiter nach unten
     * Info: Einträge mit 'menu_display' = 0 werden nicht angezeigt
     * 
     */

    $child_array = array();
    $root_array = array();
    //Die Stufe beginnt von unten zu zählen, statt von oben. Wird am Schluss umgerechnet
    $invlevel 1;

    //Alle Einträge unterhalb des $nav_id Eintrags werden gelesen
    //Sie haben den $invlevel 1
    $mysql->query("SELECT menu_ID, menu_topid, menu_name FROM menu WHERE menu_topid = $nav_id and `menu_display` != '0' ORDER BY menu_position");
    $i 0;
    while (
    $subnav_data $mysql->fetcharray()) {
        
    $child_array[$i] = array('menu_ID'=>$subnav_data["menu_ID"], 'menu_name'=>$subnav_data["menu_name"], 'menu_topid'=>$subnav_data["menu_topid"], 'level'=>$invlevel);
        
    $i++;
    }

    //Die nächsthöhere TopID
    $next_topid $page_data["menu_topid"];


    //Solange durchlaufen lassen bis obersten Navitationsteile erreicht sind (top_id == 0)

    while (($next_topid != || $next_topid != false))    {

        
    $i 0;

        
    // $top_id kann aus dem Array $child_array herausgelesen werden
        // beim 1. Durchgang kann das Child-Array leer sein, man kann dafür die $nav_id nehmen
        
    if(empty($child_array[0]["menu_topid"])) {
            
    $top_id $nav_id;
        } else {
            
    $top_id $child_array[0]["menu_topid"];
        }


        
    //Erhöhung des $invlevels, da eine Stufe weiter Richtung oben
        
    $invlevel++;

        
    $mysql->query("SELECT menu_ID, menu_topid, menu_name FROM menu WHERE menu_topid = $next_topid and `menu_display` != '0' ORDER BY menu_position ASC");
        
    //Die Tabelle auslesen
        
    while($subnav_data $mysql->fetcharray()) {

            
    $root_array[$i] = array('menu_ID'=>$subnav_data["menu_ID"], 'menu_name'=>$subnav_data["menu_name"], 'menu_topid'=>$subnav_data["menu_topid"], 'level'=>$invlevel);
            
    /**
             * //Wenn die menu_ID die Top_id des Child-Array ist, heisst das, 
             * menu_ID liegt direkt darüber
             * Z.B Eintrag 2.1
             *             Eintrag 2.1.1
             *             Eintrag 2.1.2
             * 
             * Eintrag 2.1 und Eintrag 2.1.1 liegen gerade übereinander
             * 
             * Array werden zusammengefügt.
             * Anzahl der Elemente wird in $i gespeichert, damit weder überschrieben wird noch sich eine Lücke bildet
             */
            
    if($root_array[$i]["menu_ID"] == $top_id) {

                
    $root_array array_merge($root_array$child_array);
                
    //Minus 1, weil es sonst einen Zwischenraum gibt. Z.B. $root_array[2], dann $root_array[4]
                
    $i count($root_array) - 1;
            }
            
    $i++;
        }

        
    $child_array $root_array;
        
    $root_array = array();

        
    /**
         * Naechste top_id herausfinden 
         */
        //Hier wird noch mit der alten $next_topid gerechnet. Die Topid vom höheren Menu wird gelesen
        
    $mysql->query("SELECT menu_topid FROM menu WHERE menu_ID = $next_topid and `menu_display` != '0' LIMIT 1");
        
    $subnav_data $mysql->fetcharray();
        
    //Neues $next_topid
        
    $next_topid $subnav_data["menu_topid"];


    }
    //Ende Whileschleife


    /**
     * Die $invlevels müssen noch umgekehrt werden. Momentan ist der tiefste Eintrags-Lebel 1, 
     * aber der höchste Eintragslevel soll 1 werden
     */

    //Das Anzahl Level wird abgespeichtert
    $anzlevel $invlevel;

    $invlevel 0;
    $number count($child_array);

    //Die Umrechnunsschleife, die Levels werden neu gesetzt: Das Höchste jetzt das Tiefste und umgekehrt
    for($i 0$i $number$i++) {
        
    $invlevel $child_array[$i]['level'];
        
    $child_array[$i]['level'] = $anzlevel $invlevel 1;
    }

    //Die Subnav_array mit dem vollständigen child_array füllen
    $subnav_array $child_array;





    /**
     * Das komplizierte ist jetzt vorbei
     * ************** Menu Ende ***********
     * 
     */


        
    $mysql->query("SELECT * FROM content WHERE content_ID = $page_id");
        
    $data $mysql->fetcharray();
        
    $content_title $data["content_title"];
        
    $content_text $data["content_text"];


    ?>
     

  4. #4
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Was steht denn in der config.php?

    Mir fehlt da irgendwie die Klasse mysql bzw. deren Instanziierung.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  5. #5
    hafa hafa ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    17
    PHP-Code:
    <?php
    $host 
    "localhost"// Adresse des Datenbankservers, meistens localhost
    $user "User"// Ihr MySQL Benutzername
    $pass "passwort"// Ihr MySQL Passwort
    $db "menu"// Name der Datenbank


    $link mysql_connect($host$user$pass) or die ("Keine Verbindung zu der Datenbank möglich.");
    mysql_select_db($db$link);
    ?>
     

  6. #6
    Avatar von forsterm
    forsterm forsterm ist offline Mitglied Rubin
    Registriert seit
    Nov 2004
    Ort
    Bayern
    Beiträge
    1.328
    Hallo,
    also so wie's ausschaut, fehlt dir bzw. dem Tutorial eine MySQL Datenbankklasse.

    mfg
    forsterm
     
    Wie man Fragen richtig stellt

    Wichtig:
    Bitte markiert eure beantworteten Fragen als "erledigt" (links unten auf "Erledigt" klicken).
    __________________
    .:Mitglied #26 des 1. offiziellen Sven Uwe Fan-Clubs:.

  7. #7
    hafa hafa ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    17
    Hallo,
    kannst du mir etwas genauer sagen was da fehlt,
    oder wie ich es zustande bekomme es fertig zustellen
    Danke!
     

Ähnliche Themen

  1. Fehler in der Navigation + mod_rewrite?
    Von falkman im Forum Hosting & Webserver
    Antworten: 3
    Letzter Beitrag: 20.10.09, 11:45
  2. Navigation fehler !
    Von steven90 im Forum HTML & XHTML
    Antworten: 2
    Letzter Beitrag: 02.10.07, 14:55
  3. Hilfe bei einer Dynamischen Navigation gesucht.
    Von messmar im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 04.05.05, 20:07
  4. am Verzweifeln : Navigation fehler / Problem
    Von Ice-1982 im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 17.02.02, 18:20