Problem mit While Schleife und Link mit Variable.

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

  • Problem mit While Schleife und Link mit Variable.

    Hallo,
    Ich habe da ein kleines Problem,

    Zur Einleitung, ich Arbeite schon seit ein paar tagen neben dem Beruf, so als Freizeit hobby an einem nach meinen Traummassen geschriebenes CMS, vllt. nicht so prall wie Typo3 oder Joomla aber es ist meins und ich kann mit ihm machen/ einstellen was ich will oder was ich brauch.

    So nun noch mal eine kleine Einleitung:

    Ich habe einen Offenen und einen Adminbereich.
    Im Admin Bereich kann ich u.a einen neuen Link in die Datenbank eintragen.

    Dieser wird dann im offenen bereich in einer Liste ja auf gelistet.
    (Ich nenne das Link Pool)
    In diesem Link Pool sind die Links nach der neuigkeit sortiert.

    Man kann sich auch noch mit einem Link klick nur eine bestimmte Kateorie anzeigen lassen.

    Aso hab vergessen zu sagen: Im Adminbereich, kann man Name, URL und Kateorie auswählen und das wird denn gespeichert.

    Die Kategorien stehen in einer Extra DB Tabelle.

    So jetzt möchte ich das wenn ich mit einem Formular in meinem Adminbereich eine neue Kategorie der Datenbank hinzufüe, das Automatisch ein neuer Button (Zum Auswählen dieser Kategorie) und in der Switch Case anweisung soll eine neue abfrage für die neue Kategorie erscheinen.

    Ich hoffe ihr habt das soweit verstanden was ich meine, ich hab ab und zu mal wirre gedanken ^^

    Jetzt ein paar beispiele wie ICH das losen wollte...

    Ein neuer Button, soll mit jeder neuen Katagorie erscheinen!

    Ich würde eine While Schleife erstellen die mir solange die Datensätze einer Tabelle ausgibt bis alle ausgegeben wurden.

    Ich lass jetzt mal die While schleife weg und komme gleich zu dem bereich der immer wiederholt wird solange Datensätze in der tabelle sind.

    PHP-Code:
    {
    echo 
    '<a href"index.php?page=link&category='.$Kategorie->Spalte.'">'.$Kategorie->Spalte.'</a>';

    Rein Theoretisch, sollten jetzt alle Katagorien Namen so verlinkt sein das ich mit
    PHP-Code:
    $_REQUEST['category']; 
    und der Switch anweisung arbeiten kann !?

    Aber NEIN! Es werden zwar alle Kategorien ausgelistet und verlinkt aber nur mit "index.php?page=links" das "&category='.SPALTEN INHALT.' lässt er weg.

    Ich hab zwar noch ein Problem... mit der Switch anweisung, weil ich da auch ein neuen Case vergleich für jede Kategorie brauche und das auch nicht geht! Aber das Switch Problem erkläre ich später noch genauer, jetzt möchte ich erst mal das mit dem Link klären.

    Wäre schön wenn sich jemand äussern könnte.

    MFG
    Nem

  • #2
    völliger schuss ins blaue:
    PHP-Code:
    urlencode($Kategorie->Spalte
    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      PHP-Code:
      $_REQUEST['category'
      Wenn du weisst, dass es sich um URL Parameter handelt, dann verwende besser $_GET.
      Es werden zwar alle Kategorien ausgelistet und verlinkt aber nur mit "index.php?page=links" das "&category='.SPALTEN INHALT.' lässt er weg.
      Aber zumindest das müsste er doch anzeigen
      Code:
      <a href"index.php?page=link[b]&category=[/b]
      Wenn nicht, dann geht dein Code in einen anderen Zweig, als den den du hier gezeigt hast...
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Danke ihr beiden!
        Das mit den Links geht schon mal!

        Aber nun wie gesagt zu meinem Switch Case Problem:

        Hier ist mal meine Anweisung.
        PHP-Code:
        switch($show_kategorie)
                    {
                        while(
        $kategorien mysql_fetch_object($kategorie_output))
                            {
                                case 
        urlencode($kategorien->Kategorie):
                                    
        $links_select 'SELECT * FROM links_pool WHERE Kategorie = '.urlencode($kategorien->Kategorie).'';
                                    
        $links_output mysql_query($links_select);
                                break;
                            }
                        default:
                            
        $links_select "SELECT * FROM links_pool";
                            
        $links_output mysql_query($links_select);
                        break;
                    } 
        Im wötrlichen sinne soll er mir solange Case Anweisungen in die Switch schreiben bis alle Kategorien aufgelistet sind. Dann soll anhand der Variable die ich jetzt mit _GET über gebe nach geschaut werden welche Kategorie ausgewählt wurde.

        Leider gibt er mir diese Fehlermeldung aus:

        Parse error: syntax error, unexpected T_WHILE, expecting T_CASE or T_DEFAULT or '}' in D:\xampp\htdocs\links.php on line 25
        Das entspricht der Zeile mit der While Schleife.

        Ich höffe das auch da mir jemend helfen kann.

        MFG
        Nem.

        Kommentar


        • #5
          Hallo,

          du müsstest dir nur die Fehlermeldung übersetzen

          Er möchte an dieser Stelle keine while-Schleife sondern "case" oder default"

          Ich würde es so machen:

          Erst eine While Schleife, wo du alles Kategorien mit der GET überprüfst und dann danach eine if, ob die sache erfolgreich war, ....

          mfg

          Kommentar


          • #6
            Original geschrieben von Blackgreetz
            Hallo,

            du müsstest dir nur die Fehlermeldung übersetzen

            Er möchte an dieser Stelle keine while-Schleife sondern "case" oder default"

            Ich würde es so machen:

            Erst eine While Schleife, wo du alles Kategorien mit der GET überprüfst und dann danach eine if, ob die sache erfolgreich war, ....

            mfg
            Die SAU! Der soll meine While in der Switch schlucken! -.-

            Naja if ist auch oky...
            Aber dein Vorschlag verstehe ich net ganz..

            meinst du:

            PHP-Code:
            if ($show_kategorie ==    '')
                            {
                                
            $links_select "SELECT * FROM links_pool";
                                
            $links_output mysql_query($links_select);
                            }
                            while(
            $kategorien mysql_fetch_object($kategorie_output))
                                {
                                    elseif (
            $show_kategorie ==    urlencode($kategorien->Kategorie))
                                        {
                                            
            $links_select 'SELECT * FROM links_pool WHERE Kategorie = '.urlencode($kategorien->Kategorie).'';
                                            
            $links_output mysql_query($links_select);
                                        }
                                }
                            else 
                            {
                                
            $links_select "SELECT * FROM links_pool";
                                
            $links_output mysql_query($links_select);
                            } 
            Das geht auch net:

            Parse error: syntax error, unexpected T_ELSEIF in D:\xampp\htdocs\links.php on line 30

            Kommentar


            • #7
              Hast du mal Grundlagen gelernt?!

              Was du da machst ist ja richtig .. Aua! Du kannst keine elseif zweige mit ner while erstellen!
              Liebe Grüße,
              SteKoe!

              PHP Tutorials
              Peter Kropff | Quakenet | Schattenbaum.net

              Kommentar


              • #8
                Hallo,

                @WebNem: Bitte erstmal Code umbrechen... horizontal scrollen ist nich jedermanns Sache

                Ich meinte es eher so (ich weiß ja nicht, was bei dir default sein soll):

                PHP-Code:
                $found 0;
                while(
                $blubb kats){
                  if (
                $get == $blubb[kat]){
                  do 
                this
                   $found 
                1
                  
                }
                }
                if(
                $found != 0){
                  default..

                Schau dir aber eventuell die Grundlagen nochmal an: (Siehe Signatur vom Vorposter)

                Kommentar


                • #9
                  Schau dir aber eventuell die Grundlagen nochmal an
                  eventuell??? auf jeden fall. also z.b. bei mir.
                  @blackgreetz
                  pseudo-code ist ja ganz gut und schön, aber deiner ist ein wenig zu pseudo

                  gruß
                  peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar


                  • #10
                    Original geschrieben von Kropff
                    @blackgreetz
                    pseudo-code ist ja ganz gut und schön, aber deiner ist ein wenig zu pseudo
                    OffTopic:

                    Hm .... findest? -g-
                    Ich glaube, dass du recht haben könntest..

                    Btw: @TS: Guck dir vor meinem Pseudo-Code erstmal das Tutorial von Kropff, bzw. den anderen aus der signatur von stekoe2000 an.

                    Kommentar

                    Lädt...
                    X