Problem mit ausgabe innerhalb einer WHILE SCHLIEFE

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

  • Problem mit ausgabe innerhalb einer WHILE SCHLIEFE

    Hallo,

    ich habe folgendes problem:

    Ich meinem php script habe ich folgenden Code erstellt:

    PHP-Code:
    <select name="tourdat" size="1" id="tourdat" onChange="location.href=this.options[this.selectedIndex].value">
    <option value="Null">Bitte auswählen</option>                    
    <option value="tour.show.php?sid=<? echo $s->get_sid();?>&touren=alle">Alle</option>
    <?
    $tourdatum = mysql_query('SELECT * FROM tour_daten GROUP BY datum');
    while ($tourdatumrow = mysql_fetch_array($tourdatum)) {
    $datecount = $tourdatumrow['datum'];
    $zaehlen = mysql_query("SELECT COUNT(*) FROM tour_daten WHERE datum = ".$datecount.""); 
    $tourzahl = mysql_fetch_row($zaehlen);                
    echo '<option value="tour.show.php?sid='.$s->get_sid().'&datum='.$tourdatumrow['datum'].'">
    '.$tourdatumrow['datum'].'('.$tourzahl[0].')</option>'; 
    mysql_free_result($zaehlen);
    }
    mysql_free_result($tourdatum);                                        ?>
    In der erstellten Select-Box soll hinter dem Datum auch die menge der für dieses Datum eingetragenen datensätze angezeigt werden.

    Es wird aber immer nur 0 angezeigt, warum ist das so? kann mir da einer helfen?

    Danke im voraus...

    LG

    Jan
    Zuletzt geändert von MelcomB56; 15.04.2008, 09:53.

  • #2
    mysql_eror() sagt dir was?
    it's not a bug,
    it's a feature!

    Kommentar


    • #3
      hmm, *schäm*... das habe ich natürlich noch nicht gemacht *duck*

      thx für den kopfklapser

      Kommentar


      • #4
        Bitte Code umbrechen, sonst findet man den Antwort-Button nicht.

        Dein Code ist etwas gar kompliziert geraten. Wo genau der Fehler lieg, kann ich dir auch nicht sagen. Schau halt diese (ungetestete) Version mal an:
        PHP-Code:
        <?php
        echo "<select name='tourdat' size='1' id='tourdat' onchange='location.href=this.options[this.selectedIndex].value'>
                <option value='Null'>Bitte ausw&auml;hlen</option>
                <option value='tour.show.php?sid=" 
        .$s->get_sid() . "&amp;touren=alle'>Alle</option>";
        $sql '
            SELECT
                datum,
                COUNT(*) anzahl
            FROM 
                tour_daten 
            GROUP BY 
                datum'
        ;
        $tourdatum mysql_query($sql) || mysql_error());
        while (
        $tourdatumrow mysql_fetch_array($tourdatum)) { 
            
        printf("<option value='tour.show.php?sid=%s&amp;datum=%s'>%s(%s)</option>"
                    
        $tourdatumrow['datum'], $tourdatumrow['datum'], $tourdatumrow['anzahl']);
        }
        echo 
        "</select>";
        ?>
        Zuletzt geändert von H2O; 15.04.2008, 10:31.
        Gruss
        H2O

        Kommentar


        • #5
          Hallo H2O,

          thx für deine schnelle antwort.

          Mein code ist etwas sehr unglücklich, aber es soll ja auch nur erstmal klappen :P.

          Dein code klappt leider nicht, und wenn ich in meinem code den mysql_error mache denn meldet SQL auch keinen Fehler

          ich bin echt ratlos und alles zig mal durchgegangen. Theoretisch müsste das so klappen.

          Kommentar


          • #6
            Naja, was erwartest du, dass du bei COUNT(*) zurück bekommst?

            Außerdem sollte man keine SQL-Abfragen in einer While-Schleife machen. Das ist wie beim Autofahren alle 50 Meter Ein- und Aussteigen.

            Kommentar


            • #7
              Original geschrieben von MelcomB56

              Dein code klappt leider nicht,
              Wahnsinnig informative Aussage
              Gruss
              H2O

              Kommentar


              • #8
                Ja, selbe wenn ich COUNT(tour_id) mache kommt ne 0 zurück.

                Und das ich eine SQL abfrage in der WHILE schleife habe liegt daran das die einträge für jedes datum was er sich holt gezählt werden sollen.

                Ich kenne da bislang noch keine andere lösung, leider.

                LG

                Jan

                Kommentar


                • #9
                  Original geschrieben von H2O
                  Wahnsinnig informative Aussage
                  ja sorry,

                  also bei dr liest er die daten nicht aus.

                  *voll unter stress hier*



                  LG

                  Jan

                  Kommentar


                  • #10
                    Original geschrieben von MelcomB56

                    also bei dr liest er die daten nicht aus.
                    Das stimmt so sicher nicht. Diese Abfrage liefert genau die Daten, die du brauchst, ausser die Struktur stimmt nicht (dann geht aber deine auch nicht).
                    Möglicherweise geht die Ausgabe nicht (bei anzahl fehlten noch die Hochkommas, aber ich nehm mal an, das hast du korrigiert).
                    Teste doch die Abfrage mal im PMA oder sonst einem SQL-Monitor und schau was herauskommt
                    Gruss
                    H2O

                    Kommentar


                    • #11
                      Hi H2O,

                      also dein Code hatte mehrere fehler *gg* aber egal. bin ja glücklich das ich hilfe bekomme.

                      Dein code liest leider kein Datum aus was in dem Optionsfeld zurückgegeben werde soll.

                      Kommen auch keine SQL fehler auch übern SQL moni nicht.

                      LG

                      Jan

                      Kommentar


                      • #12
                        Und das ich eine SQL abfrage in der WHILE schleife habe liegt daran das die einträge für jedes datum was er sich holt gezählt werden sollen.
                        Das geht mit COUNT(*) und GROUP BY.

                        Code:
                        SELECT
                            `sorte`, COUNT(*) AS `anzahl`
                        FROM
                            `obst`
                        GROUP BY
                            `sorte`

                        Kommentar


                        • #13
                          richtig, aber das was gezählt werden soll ändert sich in der WHILE schleife immer.

                          Kommentar


                          • #14
                            Erstma Thx frür die ganze liebe hilfe,

                            PHP-Code:
                            $tourdatum mysql_query('SELECT `datum`, COUNT(*) AS `anzahl` FROM `tour_daten` GROUP BY `datum`');
                            while (
                            $tourdatumrow mysql_fetch_assoc($tourdatum)) {
                                echo 
                            '<option value="tour.show.php?sid='.$s->get_sid().'&amp;datum='.$tourdatumrow['datum'].'">'.$tourdatumrow['datum'].'('.$tourdatumrow['anzahl'].')</option>';
                            }
                            mysql_free_result($tourdatum); 
                            das ist die lösung meines problems *freu*


                            LG

                            Jan

                            Kommentar


                            • #15
                              Und was ist da anders, als bei meiner Version, ausser dass man horizontal scrollen muss?
                              Gruss
                              H2O

                              Kommentar

                              Lädt...
                              X