for Schleife in while Schleife

  • Hi
    dreh grad wieder mal durch weil ich es nicht checke.

    Folgender Code füllt mir mein Dropdown nicht richtig


    Das Problem dabei ist jetzt das mir das Dropdown je nach dem wieviel Ergebnisse es gibt doppelt und dreifach gefüllt wird.

    Entweder seh ich den Wald vor lauter Bäumen nicht, da mir keine Lösung dazu einfällt oder ich bin zu bescheuert.

    Vielleicht weiß ja jemand von euch rat.
    Danke
    Morrers

  • Ich hab das ganze nicht ausprobiert, aber ich vermute den Fehler im HTML Syntax

    der <select Tag wird nie geschlossen.

    1. Zeile

    PHP
    $query = 'SELECT a.id, a.ballon_id,  a.ballon_name, a.ballon_start, a.ballon_ende
    from  ballon a where ballon_id = '.(int)$obj_id;

    (int) wandelt die Variable in eine Zahl um, damit nicht SQL Code mitgegeben werden kann. -> SQL Injection

    ca. 6. Zeile

    PHP
    $ballon_drop_start_day='<select name="ballon_start_day_new">';

    ca. 10. Zeile (falls ballon_start keine Konstante ist!)

    PHP
    $ballon_start_day = date("j",$line['ballon_start']);


    die ' bei ballon_start vermeiden einen PHP Fehler.

  • Hallo
    die obj_id ist bereits ein Zahl, also muss da glaub ich nix geändert werden.
    Das select wir geschlossen und zwar in der ballon_db.

    Das hier ist der Timestamp aus der Datenbank der für jeden Eintrag anders ist

    Code
    [FONT=Courier New][COLOR=#0000cc]$ballon_start_day [/COLOR][COLOR=#006600]= [/COLOR][COLOR=#0000cc]date[/COLOR][COLOR=#006600]([/COLOR][COLOR=#cc0000]"j"[/COLOR][COLOR=#006600],[/COLOR][COLOR=#0000cc]$line[/COLOR][COLOR=#006600][[/COLOR][COLOR=#cc0000]'ballon_start'[/COLOR][COLOR=#006600]]);[/COLOR][/FONT]



    Gruß
    Morrers

    2 Mal editiert, zuletzt von morrers (23. Dezember 2008 um 09:54)

  • rein der verständlichkeit...
    ballon_id ist ein primarykey bzw unique? dann brauchst du keine while schleife... und ich würde in den select ein limit 1 reinmachen wenn dem so ist

    Du definierst in der sql abfrage ein "ballon as a" und fragst dann ballon_id = '$obj_id'
    ich bin mir gerade nicht sicher aber es muss a.ballon_id = '...' heißen wenn du schon ein alias definierst... und ich würde '".$obj_id."' schreiben, da nur die einfachen zu problemen führen können.

    so weiter, was haben wir noch....

    for($y=0;$y < date("t",$line[ballon_start]);$y++)

    so damit machst du deine for schleife nur noch so oft, wie auch wirklich tage ein monat hat... z.B. 28 ;)

    mach mal eine zeile vor dem while ein

    Code
    echo "<pre>";
    print_r($result);
    echo "</pre>";

    damit gibst du das komplette ergebnis aus und du siehst ob dein querry falsch ist oder deine schleife.

    gruß

  • Hallo gerade eben gefunden
    Es gibt in dem Sinn keinen Fehler, nur die Schleife darf sich oben natürlich nicht widerholen, ich musste die for Schleife einfach ins baloon_db integrieren.

    Gruß
    Morrers
    Manchmal muss man einfach über ein Problem schlafen.
    Danke für eure Hilfe