Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit while-schleife um daten aus der Datenbank jeweiligem tag zuzuordnen

Einklappen

Neue Werbung 2019

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

  • Probleme mit while-schleife um daten aus der Datenbank jeweiligem tag zuzuordnen

    Hallo erstmal,
    bevor ich meinen Code poste ersteinmal eine kleine Erklärung. Ich habe mittels einer PhP-Function eine Tabelle erzeugt die einen Kalender darstellen soll. Nachdem dies geklappt hatte versuche ich nun diese Tabelle mittels einer While-Schleife zu erzeugen. Damit ich Datenbankeinträge dem jeweiligem Tag zuordnen kann. Jedoch bleibe ich genau bei der anpassung der while-schleife hängen, und drehe mich mit meinen Überlegungen im Kreis. Es wäre schön wenn Ihr mir hier damit weiterhelfen könntet:

    PHP-Code:
    function february($username){
                        
    $date_year getdate();
                        
    $year $date_year['year'];
                        
    $days 28;
                        
    $mnum 2;
                        
    $i 1;
                        
    $user $username;
                        
    $work $cal_dates->runcQuery("SELECT id, mitarbeiter, cal_day, cal_mon, cal_year, ma_wish FROM ma_wishes
    WHERE mitarbeiter=:uname AND cal_mon=
    $mnum AND cal_year=$year");
                        
    $work->execute(array(":uname"=>$user));
                        echo
    "<center>";
                        echo
    "<table id='month'>";
                        echo
    "<tr>";
                        while(
    $workRow = ...) { $events[$workRow['cal_day'/* == 1..31 */][] = $row; }

    alte tabelle ->echo"<td id='border'>".  $i ."</td>";
                        
    $i++;
                        echo
    "<td id='border'>".  $i ."</td>";
                        
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                        
    $i++;
                        echo
    "<td id='border'>".  $i ."</td>";
                        
    $i++;
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "</tr>";
                        echo
    "<tr>";
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;    
                        echo
    "</tr>";
                        echo
    "<tr>";
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                        
    $i++;
                        echo
    "</tr>";
                        echo
    "<tr>";
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                         
    $i++;  
                        echo
    "<td id='border'>".  $i ."</td>";
                        echo
    "</tr>";
                        echo
    "<tr>";
                        echo
    "<td id='noborder'></td>";
                        echo
    "<td id='noborder'></td>";
                        echo
    "<td id='noborder'></td>";
                        echo
    "<td id='noborder'></td>";
                        echo
    "<td id='noborder'></td>";
                        echo
    "<td id='noborder'></td>";
                        echo
    "<td id='noborder'></td>";
                        echo
    "</tr>";
                        echo
    "</table>";
                        echo
    "</center>";



            } 

  • #2
    Ohne mir jetzt genauer Deinen Code genau angesehen zu haben hier der erst Fehler über den ich gestolpert bin:

    $cal_dates existiert nicht. und warum um Himmels Willen heist die DB-Verbindung bei Dir $cal_dates? Stehst Du auf cryptische irritierende Bezeichner?

    Ausserdem beachtest Du nicht das E.V.A. Prinzip (Eingabe - Verarbeitung - Ausgabe: siehe Wissenssammlung)

    Kommentar


    • #3
      Das Datum solltest du in der DB als Typ Date speichern und nicht trennen.

      Eine Funktion sollte etwas zurückgeben keine Ausgaben machen, da fehlt also der Return-Wert.
      Die Funktion february zu nennen ist sehr ungeschickt, wähle immer aussagekräftige Namen.
      Wenn du zudem eine Funktion february hast, willst du dann für jeden Monat eine Funktion haben.
      Für wiederholende Vorgänge sind Funktionen ideal, nutze sie daher effizient und erstelle sie so, dass du sie für jeden Monat nutzen kannst.

      <td id='border'>
      Eine id hat einmalig zu sein, das ist nun mal die Eigenschaft einer id.

      Das <center> Tag ist veraltet und sollte nicht mehr verwendet werden, nutze stattdessen CSS.

      Kommentar

      Lädt...
      X