switch - case

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • switch - case

    Hi,

    ich habe in meiner Datenbank folgende Variablen gespeichert:

    ID, case, include

    bei jeder Variable sind momentan 6 einträge in der Datenbank. Diese Einträge könnn sich aber mit der zeit verringern oder vermehren. ich habe mir gedacht, dass ich deswegen in meine switch-case-anweisung eine kleine SQL-Anweisung eingebunden. nun tritt aber immer wieder der fehler auf "Database not selected". würde mich über hilfe freuen, in bezug auf den folgenden Quelltext, wo sich da ein Fehler eingeschlichen haben könnt.

    PHP-Code:
    <?
    switch (@$section) {

    $sql = "SELECT * FROM navig ORDER BY ID;";
    $result = mysql_query($sql) OR die(mysql_error());
      while($row = mysql_fetch_assoc($result) )
    $case = $row['case'];
    $include = $row['include'];
    {
             case "$case";
                include "include";  
             break;
    };
             default:
                echo  "Die seite wurde nicht gefunden";
    }

    ?>

  • #2
    Re: switch - case

    Original geschrieben von basti87
    nun tritt aber immer wieder der fehler auf "Database not selected".
    na dann solltest du doch wissen, was zu tun ist ...

    1. verbindung zur DB herstellen (sofern noch nicht erfolgt)
    2. eine datenbank auswählen
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      nun tritt aber immer wieder der fehler auf "Database not selected"
      irgendwie sollte Dir selbst klar sein was gemeint ist oder?
      [Test] MySQL cli Emulator

      Kommentar


      • #4
        ja ist klar, was damit gemeint ist. nur die verbindung zur datenbank steht!

        PHP-Code:

        <?
        switch (@$section) {

        $sql = "SELECT * FROM navig ORDER BY ID;";
        $result = mysql_query($sql) OR die(mysql_error());
          while($row = mysql_fetch_assoc($result) )
        $case = $row['case'];
        $include = $row['include'];
        {
                 case ".$case.";
                    include "$include";  
                 break;
        };
                 default:
                    echo  "Die seite wurde nicht gefunden";
        }

        ?>
        jetzt habe ich den quelltext so geändert und da kommt irgendwas mit
        [COLOR=red]unexpected T_CASE[/COLOR]

        kann es es sein, das man in eine sitch-case-anweisung keine variablen einfügen darf?
        Zuletzt geändert von basti87; 30.09.2004, 21:51.

        Kommentar


        • #5
          nur die verbindung zur datenbank steht!
          kann man so nicht erkennen...
          Dein switch sieht etwas merkwürdig aus!

          Wieso nutzt Du überhaupt switch?
          Ist doch gar nicht nötig!
          [Test] MySQL cli Emulator

          Kommentar


          • #6
            kannste mir dann bitte sagen wie ich mein switch gestalten soll?

            Kommentar


            • #7
              kannste mir dann bitte sagen wie ich mein switch gestalten soll?
              das kannst Du wohl selbst auf php.net suchen und lesen oder ist das zuviel verlangt?

              Mache es doch so ->

              'SELECT include FROM navig WHERE case = '.$section

              wenns nicht gefunden wird dann kannst Dein default machen.
              [Test] MySQL cli Emulator

              Kommentar


              • #8
                was soll ich statt switch nutzen?

                Kommentar


                • #9
                  hmm.. irgendwie weis ich nicht, wie ich das da jetzt machen soll, kannst du mir vielleicht die ganze anweisung schicken? währe nett.

                  Kommentar


                  • #10
                    PHP-Code:

                    <?

                    $sql = "SELECT * FROM alaris_sub_menu WHERE case = '.$section ORDER BY sub_id;";
                    $result = mysql_query($sql) OR die(mysql_error());
                      while($row = mysql_fetch_assoc($result) )
                    $case = $row['case'];
                    $include = $row['include'];
                    {
                             case "$case";
                                include "$include";  
                             break;

                             default:
                                echo  "Die seite wurde nicht gefunden";
                    }

                    };

                    ?>
                    Ich hab das jetzt so gemacht. ist das jetzt richtig?

                    Kommentar


                    • #11
                      tz
                      mysql_query
                      mysql_fetch_array
                      [Test] MySQL cli Emulator

                      Kommentar


                      • #12
                        ist da was falsch? kannst mir bitte helfen? wollte das heute noch fertig bekommen

                        Kommentar


                        • #13
                          Original geschrieben von basti87
                          ist da was falsch? kannst mir bitte helfen? wollte das heute noch fertig bekommen
                          ja, natürlich helfe ich, sonst wäre ich nicht hier, aber Du willst das heute fertig bekommen? Wunderbar, dann solltest Du lieber erstmal ein paar Grundlagen pauken oder Du suchst Dir jemanden der Dir das ganze erstellt.
                          Ich habe 2 Manual Links gepostet, dort steht alles wichtige, sogar mit Beispiel Code und sogar DE...
                          [Test] MySQL cli Emulator

                          Kommentar


                          • #14
                            so es geht entlich, mit ausnahme von einem kleinen fehler:

                            PHP-Code:

                            <?
                             mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
                                mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());

                            $sql = "SELECT * FROM alaris_sub_menu ORDER BY sub_id;";
                            $result = mysql_query($sql) OR die(mysql_error());
                              while($row = mysql_fetch_assoc($result) )
                            $case = $row['url_sub'];
                            {
                                switch (@$section) {
                                     case ($case);
                                        include ($case);  
                                     break;

                                     default:
                                        echo  "Die seite wurde nicht gefunden";
                            }
                            };

                            ?>
                            so sieht der code jetzt aus. Es funktioniert aber jetzt immer nur der letzte eintrag in der Datenbank. Wie könnte ich das jetzt am besten lösen?

                            Kommentar


                            • #15
                              Original geschrieben von basti87
                              Es funktioniert aber jetzt immer nur der letzte eintrag in der Datenbank.
                              dein "anweisungsblock" der while-schleife besteht nur aus einer einzigen anweisung, $case = $row['url_sub'];

                              der switch wird erst nach der schleife ausgeführt - vielleicht möchtest du ja die position der geschweiften klammern nochmal überdenken ...?
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X