Ankündigung

Einklappen
Keine Ankündigung bisher.

MySQL: Zellen einzeln ausgeben

Einklappen

Neue Werbung 2019

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

  • MySQL: Zellen einzeln ausgeben

    Guten Abend,

    ich habe derzeit ein Problem, welches mich, auch nach längerem Suchen, immer noch beschäftigt und deshalb bitte ich hier um Rat.

    Ich habe eine Tabelle, ähnlich aufgebaut wie ein Wochenkalender. Jede Spalte steht für einen Wochentag und jede Zeile für einen Zeitraum.
    Dazu ein Beispiel:
    Code:
                   | Mo. | Di. | Mi. | Do. | Fr. | Sa. | So.
    --------------------------------------------------------
    8:00 - 09:00  |  A   |  B  |
    9:00 - 10:00  |   C  |   D |
    In der Datenbank habe ich jeder einzelnen Zelle einen Eintrag in die Tabelle „kalender" gegeben.
    Die Zelle A aus dem Beispiel hat in der Tabelle den Eintrag mo1 als tag und als Text dann den Termin.
    Dazu ein Beispiel:
    Code:
    id | tag   | text
    ----------------------
     1 |  mo1  | Hausarzt <-- Zelle A
     2 |  di1  | Zahnarzt <-- Zelle B
    Nun der Code meinerseits:
    PHP-Code:
    $abfrage "SELECT tag, text FROM kalender";
    $result mysql_query($abfrage); 
    Wie ich bereits sagte, habe ich bereits eine feste und vorgerfertigte Tabelle vorliegen, in welche dann die entsprechenden Werte eingefügt werden sollen.
    Hier die Tabelle meinerseits:
    PHP-Code:
    echo"
    <table summary='kalender'>
            <thead>
                <tr>
                    <th></th>
                    <th>Montag</th>
                    <th>Dienstag</th>
                    <th>Mittwoch</th>
                    <th>Donnerstag</th>
                    <th>Freitag</th>
                </tr>
            </thead>
            <tbody>
                <tr class='light'>
                    <td>8:00 - 9:00</td>
                    <td><input value='"
    .$mo1."' type='text' name='mo1'></td>
                    <td><input value='"
    .$di1."' type='text' name='di1'></td>
                    <td><input value='"
    .$mi1."' type='text' name='mi1'></td>
                    <td><input value='"
    .$do1."' type='text' name='do1'></td>
                    <td><input value='"
    .$fr1."' type='text' name='fr1'></td>
    <td><input value='"
    .$sa2."' type='text' name='sa1'></td>
                    <td><input value='"
    .$so1."' type='text' name='so1'></td>
                </tr>
                <tr class='dark'>
                    <td>9:00 - 10:00</td>
                    <td><input value='"
    .$mo2."' type='text' name='mo2'></td>
                    <td><input value='"
    .$di2."' type='text' name='di2'></td>
                    <td><input value='"
    .$mi2."' type='text' name='mi2'></td>
                    <td><input value='"
    .$do2."' type='text' name='do2'></td>
                    <td><input value='"
    .$fr2."' type='text' name='fr2'></td>
    <td><input value='"
    .$sa2."' type='text' name='sa2'></td>
                    <td><input value='"
    .$so2."' type='text' name='so2'></td>
                </tr>
                <tr class='light'>
                    <td>10:00 - 11:00</td>
                    <td><input value='"
    .$mo3."' type='text' name='mo3'></td>
                    <td><input value='"
    .$di3."' type='text' name='di3'></td>
                    <td><input value='"
    .$mi3."' type='text' name='mi3'></td>
                    <td><input value='"
    .$do3."' type='text' name='do3'></td>
                    <td><input value='"
    .$fr3."' type='text' name='fr3'></td>
     <td><input value='"
    .$sa3."' type='text' name='sa3'></td>
                    <td><input value='"
    .$so3."' type='text' name='so3'></td>
                </tr>
            </tbody>
        </table>
    "

    Wie man dort schon an den Variablen sieht möchte ich dort die Ergebnisse aus der Datenbank (bzgl. dem Termin eines Zeitpunkt an einem bestimmten Tag) anhand der Variablen sortiert in die Tabelle einfügen.

    Dies habe ich schon ein wenig gelöst und es funktioniert auch, jedoch sieht dieser Code für mich sehr unschön und ineffektiv aus.

    Mein Code:
    PHP-Code:
    //8:00 - 9:00
    $db_mo1 mysql_fetch_array($result); //Montag
    $db_di1 mysql_fetch_array($result); //Dienstag
    $db_mi1 mysql_fetch_array($result); //Mittwoch
    $db_do1 mysql_fetch_array($result); //Donnerstag
    $db_fr1 mysql_fetch_array($result); //Freitag
    $db_sa1 mysql_fetch_array($result); //Samstag
    $db_so1 mysql_fetch_array($result); //Sonntag
    //9:00 - 10:00
    $db_mo2 mysql_fetch_array($result); //Montag
    $db_di2 mysql_fetch_array($result); //Dienstag
    $db_mi2 mysql_fetch_array($result); //Mittwoch
    $db_do2 mysql_fetch_array($result); //Donnerstag
    $db_fr2 mysql_fetch_array($result); //Freitag
    $db_sa2 mysql_fetch_array($result); //Samstag
    $db_so2 mysql_fetch_array($result); //Sonntag
    //10:00 - 11:00
    $db_mo3 mysql_fetch_array($result); //Montag
    $db_di3 mysql_fetch_array($result); //Dienstag
    $db_mi3 mysql_fetch_array($result); //Mittwoch
    $db_do3 mysql_fetch_array($result); //Donnerstag
    $db_fr3 mysql_fetch_array($result); //Freitag
    $db_sa3 mysql_fetch_array($result); //Samstag
    $db_so3 mysql_fetch_array($result); //Sonntag

    //8:00 - 9:00
    $mo1 $db_mo1[1]; //die 1 in den eckigen Klammern bedeutet, dass in der ersten Spalte der String „text" ist, d.h. der Termin
    $di1 $db_di1[1];
    $mi1 $db_mi1[1];
    $do1 $db_do1[1];
    $fr1 $db_fr1[1];
    $sa1 $db_sa1[1];
    $so1 $db_so1[1];
    //9:00 - 10:00
    $mo2 $db_mo2[1];
    $di2 $db_di2[1];
    $mi2 $db_mi2[1];
    $do2 $db_do2[1];
    $fr2 $db_fr2[1];
    $sa2 $db_sa2[1];
    $so2 $db_so2[1];
    //10:00 - 11:00
    $mo3 $db_mo3[1];    
    $di3 $db_di3[1];
    $mi3 $db_mi3[1];
    $do3 $db_do3[1];
    $fr3 $db_fr3[1];
    $sa3 $db_sa3[1];
    $so3 $db_so3[1]; 
    Die Ausgabe der richtigen Termine an den richtigen Zellen funktioniert, jedoch scheint mir der Code so, als ob es besser und schneller ginge. Beispielsweise in einer Schleife, doch mir fällt nicht ein, wie ich dies lösen könnte.

    Ich wäre sehr dankbar, wenn mir da geholfen werden könnte.

    Mit freundlichen Grüßen,
    Chris

  • #2
    Was soll mo1, di1, etc. sein? Wie kommen diese Kombinationen zu Stande? Sieht jedenfalls nicht atomar aus und daher nicht empfehlenswert.

    Kommentar


    • #3
      jedoch scheint mir der Code so, als ob es besser und schneller ginge.
      Also ja doch.. Willst du für jeden Termin eine neue Variable anlegen? Auf den ersten Blick sieht deine Variante nach einem guten Beispiel aus, wie man es nicht machen sollte. Eine Grundregel ist wenn man Variablen hochzählt muss mo1, mo2, etc.. das dann ziemlich was im Argen liegt.

      Warum verwendest du in deiner DB keine DateTime (Datum-Uhrzeit-Spalte)? Den Wochentag kann man aus dem Datum ermitteln. Wenn du dir eine Art Wochenplan erstellen willst, siehe auch Normalisierung.

      Anmerkung am Rande: Eine Datenbank ist kein Excel.
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Vielen Dank für die schnelle Antwort!

        Das mo1 setzt sich folgendermaßen zusammen:
        - mo: die Spalte Montag
        - 1: erster Zeitabschnitt (in dem Fall: 8:00 - 9:00)

        Alternativ das di2:
        - di: die Spalte Dienstag
        - 2: zweiter Zeitabschnitt (in dem Fall: 9:00 - 10:00)

        Ich möchte im Endeffekt die Tabelle ,, kalender" aus der Datenbank nutzen und dann jeden einzelnen Wert in einer einzelnen Variable speichern. Die Variablen stehen schon von vornherein in der vorgefertigten HTML-Tabelle und sollen dementsprechend nur noch mit den einzelnen Werten der Datenbank befüllt werden.

        Mit freundlichen Grüßen,
        Chris

        Kommentar


        • #5
          Und das soll was werden wenn es fertig ist? Ein "normaler" Kalender oder ein Wochenüberischt? (Also quasi zB jeden Montag um 8 Uhr Arzt, jeen Di. 15.00 Chorprobe etc.. ) Also quasi ein Kalender mit fixen Serienterminen wenn man es denn so nennen will..

          Hast du schon mal via googel gesucht? Ich glaube nicht das du der erste Bist der einen Kalener o.ä. benötigt..
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            Vielen Dank für die Antwort!

            Ja, so kann man es nennen. Eine Wochenübersicht mit fixen Terminen.

            Gegoogelt habe ich bereits, jedoch über die technische Umsetzung via PHP und MySQL und wie man Werte aus der Datenbank in einer einzelnen Variable speichert und dies für mehrere Werte aus der Datenbank. Dabei ist jene Technik entstanden, die zwar funktioniert, allerdings meiner Meinung nach zu kompliziert ausformuliert ist.

            Ich habe in der Datenbank eine feste Anzahl von Werten und diese möchte ich jeweils einzeln in einer einzigartigen Variable speichern, sodass ich sie später ganz simpel in eine vorgefertigte Tabelle einfügen kann.

            Mit freundlichen Grüßen,
            Chris

            Kommentar

            Lädt...
            X