Kleines schleifenproblem mit unset

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

  • Kleines schleifenproblem mit unset

    Hallo Leute, Hallo Abraxax

    Ich hab ein Problem. Zur Eläuterung: Ich habe ein Sript, einen Downloadmanager. Die Startseite Zeigt die Hauptkategorien an. die 2 Ebene besteht aus Subkategorien. Zusammengesetzt ist das ganze Teil mit Templates.

    Hier mal der Code:

    PHP-Code:
    $result $db_sql->sql_query("SELECT * FROM $cat_table WHERE subcat='0'");
            while(
    $cat mysql_fetch_array($result)) {
            eval (
    "\$cat_mainbit .= \"".gettemplate("cat_mainbit")."\";");

            
    $subcat_show $db_sql->sql_query("SELECT titel, catid FROM $cat_table WHERE subcat='$cat[catid]' LIMIT 3");
            
            while (
    $cat_show mysql_fetch_array($subcat_show)) {
             
            
            unset(
    $cat_link);
            
    $cat_link $cat_show['titel'];
            eval (
    "\$cat_showbit .= \"".gettemplate("cat_showbit")."\";");
      
       }


    Also, die erste schleife holt die Hauptkategorien. Folgendes sollte passieren: Die erste hauptkategorie wird geholt, danach werden die Subkategorien geholt, LIMIT 3. Das Template für die Subkategorien ist im Template der Hauptkategorien eingebunden. Die Abfrage der Subkategorie läuft also 3 mal Durch, erstellt 3 Templates und zeigt diese im 1. Template der Hauptkategorie wieder an. Soweit so gut, das geht.
    Nun habe ich aber folgendes Problem, beim 2. Komplett Durchlauf der Schleife werden anstatt die 3 neuen Subkat Templates zuerst die alten 3 und dann die neuen 3 angezeigt. Also ist meine Variable $cat_link noch mit meiner vorherehenden SQL Abfrage gefüllt. Das Unset sollte dies aber verhindern. Hat jemand nen Plan wie ich das geschickt lösen könnte?

    Grüsse Manfred

  • #2
    mache vor die zeile mit
    $subcat_show = $db_sql->sql

    ein
    reset($subcat_show);

    rein. das müsste das problem schon lösen.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Warning: Variable passed to reset() is not an array or object in C:\wampp2c\htdocs\ha\index.php on line 285


      285 ist die Zeile mit reset..... ?!?!?!?


      grosse leere macht sich in mir breit

      Grüsse Manfred

      Kommentar


      • #4
        ups. kommando zurück.... aber schnell... bin wohl nicht ganz wach heute.

        so muss/müsste es aber passen....

        PHP-Code:
        .
        .
        .
        reset($cat_show);
        while (
        $cat_show mysql_fetch_array($subcat_show)) {
        .
        .

        EDIT:
        kann sein, dass da noch ein fehler kommt. dann mache das reset NACH der while schleife rein.

        PHP-Code:
        .
        .
        .
        while (
        $cat_show mysql_fetch_array($subcat_show)) {
          .
          .
          .
        }
        reset($cat_show);
        .
        .


        Zuletzt geändert von Abraxax; 23.01.2003, 13:44.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Ähm, nein, sorry, das gleiche nur at Line 287...

          ?!?

          Grüsse Manfred

          Kommentar


          • #6
            Nö, auch nein.... bekomme den Fehler immer wieder?

            .......

            Kommentar


            • #7
              mhm. musst du mal weiter testen. ich hatte das auch schon. man muss nur so ein array wieder reseten. welches genau das bei dir ist, musst du mal schauen.
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Hab nun sämtliche variablen und array´s durch. bekomme immer wieder den fehler, und an der ausgabe hat sich auch nichts geändert

                Güsse Manfred

                Kommentar


                • #9
                  wenn das jetz nicht geht, bin ich momentan ratlos.

                  PHP-Code:
                  $result $db_sql->sql_query("SELECT * FROM ".$cat_table." WHERE subcat='0'");

                  while(
                  $cat mysql_fetch_array($result)) {

                    eval (
                  "\$cat_mainbit .= \"".gettemplate("cat_mainbit")."\";");
                    
                  $subcat_show $db_sql->sql_query("SELECT titel, catid FROM ".$cat_table." WHERE subcat='".$cat[catid]."' LIMIT 3");
                          
                    while (
                  $cat_show mysql_fetch_array($subcat_show)) {
                    
                      
                  $cat_link $cat_show['titel'];
                      eval (
                  "\$cat_showbit .= \"".gettemplate("cat_showbit")."\";");
                    
                    }
                    
                  reset ($cat_show);


                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    @Abraxax: Was soll denn das "reset" machen?
                    {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

                    Kommentar


                    • #11
                      der setzt das array zurück.
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        Reset setzt doch den internen Array Pointer auf das erste Element des Arrays zurück. Steh ich jetzt total auf dem Schlauch?! Warum soll der Zeiger denn nun auf das erste Element zeigen, wenn $cat_show sowieso neu gefüttert wird?
                        {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

                        Kommentar


                        • #13
                          ich weiss schon , dass der das nur auf den 1. entry setzt. ich hatte das problem irgendwo auch mal so gehabt. und mit reset() konnte ich es lösen. daher diese variante.
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            Also, ne, so net. Das geht nicht. Egal ich welches array nehme, egal an welche stelle, ich bekomm immer diese fehlermeldung zurück. Dass kann doch net sein? Das muss doch gehn?

                            hmpfl

                            Kommentar


                            • #15
                              ich bin mit meinem latain im moment am ende .... sorry.
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X