Wo ist der Fehler ?

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

  • Wo ist der Fehler ?

    Hallo,

    ich habe da ein kleines Problem mit meinem Script.
    Wenn ich die DB auslese zeigt er mir aus irgendwelchen Gründen nicht alle Termine.


    auslesen der DB:

    PHP-Code:
    $rs_termine mysql_query("SELECT tid, personalid, kundennummer,memo,unix_timestamp(start) as start,
    unix_timestamp(ende) as ende, (unix_timestamp(ende) - unix_timestamp(start))/
    $sec_per_row as dauer FROM termine"); 
    indexieren der Daten:

    PHP-Code:
            while ($termin mysql_fetch_array($rs_termine)) 
        {
            
    $termine[$termin['start']] = $termin;
            } 
    anzeigen der Daten:

    PHP-Code:
                                elseif ((isset($termine[$Uhrzeit]) && $termine[$Uhrzeit]['personalid'] == $mitarbeiter['personalid'])) 
                                {
                                    
    $last_termin $Uhrzeit;
                                    echo 
    '<td style="background-color:#ff122f;" rowspan="'.$termine[$Uhrzeit]['dauer'].'">';
                                    
    $kunde mysql_fetch_array(mysql_query("SELECT kid,vorname, nachname FROM kunden 
                                 WHERE kid = '"
    .$termine[$Uhrzeit]['kundennummer']."'"));
                                    
    $memo $kunde['nachname'].','.$kunde['vorname'].'('.$kunde['kid'].')<br>'.$termine[$Uhrzeit]['memo'];
                                    echo 
    '<script type="text/javascript">
                                            function terminanlegen (url) {
                                             fenster = window.open("index.php?id=terminanlegen&tid='
    .$termine[$Uhrzeit]['tid'].'",
                          "termine", "width=400, height=300, left=200, top=200, resizeable=no, scrollbars=no");
                                             fenster.focus();
                                            }    
                                        </script>'
    ;        
                                    echo 
    '<a href="index.php?id=terminanlegen&tid='.$termine[$Uhrzeit]['tid'].'"
                                    onclick="terminanlegen(index.php?id=terminanlegen&tid='
    .$termine[$Uhrzeit]['tid'].'); return false">';
                                    echo 
    $memo;
                                    echo 
    '</a></td>';


    Wenn ich die Daten mit "WHERE personalid='1,2 oder 3'" auslese, bekomme ich alle Termine angezeigt. sonst ein paar aber nicht alle

    Sieht jemand den Fehler ?

  • #2
    vielleicht gibt es mehrere Termine mit gleichem Startdatum?
    ich glaube

    Kommentar


    • #3
      Kann es sein, dass mehrere Datensätze den gleichen Wert fürs Attribut start haben? Dann überschreibt nämlich der jeweils letzte Datensatz alle anderen in deiner While-Schleife.
      Durch das Einschränken der Ergebnismenge mit WHERE ... hast du evtl. nur unterschiedliche Datensätze (bzgl. start) und deshalb kommt es dir so vor, als würde es dann klappen.

      Kommentar


      • #4
        du meinst gleiche startzeit ($Uhrzeit), nein die gibt es nicht, die starten alle unterschiedlich und enden auch bevor der nächste Termin startet

        Kommentar


        • #5
          was passiert, wenn du die query in phpmyadmin ausführst? kommen dann alle?

          Kommentar


          • #6
            ja, es werden dann alle Datensätze angezeigt, sowohl mit als auch ohne personalid-Einschränkung.

            Kommentar


            • #7
              Dann mach mal ein var_dump($termine) nach der While-Schleife.
              Wenn da schon was fehlt, mach mal var_dump($termin) als ersten Befehl in der Schleife. Irgendwo muß ja was verloren gehen.

              (Ich tippe immernoch auf Überschreiben ...)

              Kommentar


              • #8
                var_dump hatte ich auch schon geschaut, da sind die Termine aber auch schon NICHT drin ($termine). Ich würde es euch gern ersparen var_dump zu posten, den das ist ein bischen was an text.

                edit:
                var_dump ($termin); bringt "bool(false)"

                Kommentar


                • #9
                  edit:
                  var_dump ($termin); bringt "bool(false)"
                  IN der Schleife? Das dürfte mal unwahrscheinlich bis unmöglich sein

                  Kommentar


                  • #10
                    sorry, ich hatte das in die Whileschleife am ende eingesetzt (wurde hier nicht gepostet), jetzt habe ich es in die While Schleife (welche hier gepostet wurde) gesetzt und da ist der Termin vorhanden.

                    jetzt weis ich aber immer noch nicht warum das dann nicht angezeigt wird, warscheinlich wird es irgendwo überschrieben, aber wo ?

                    Kommentar


                    • #11
                      Na wo denn wohl? Hast ja nicht so viel Code in der Schleife.

                      Kommentar


                      • #12
                        mehr als raten, oder deinen code komplett nachvollziehen können wir auch nicht, mit den spärlichen infos, die du lieferst.

                        Kommentar


                        • #13
                          ja er zeigt die termine nicht an, wo ein anderer Termin schon mal angefangen hat. das heist ich muss es nur anders indexieren. Danke, manchmal sieht man den Wald vor lauter Bäumen nicht.

                          gruß

                          speeedy018

                          Kommentar

                          Lädt...
                          X