tabelle erstellen in html aus einer mysql db

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

  • tabelle erstellen in html aus einer mysql db

    hallo gemeinschaft, sorry thread ist bereits gepostet aber im falschen forum

    könnt ihr bitte trotzdem einen versuch starten

    habe eine mysql tabelle mit folgender struktur

    tag________obst
    01.01.02___apfel
    02.01.02___birne
    01.01.02___birne
    03.01.02___banane

    usw.

    jetzt möchte ich eine php tabelle erstellen, die folgendes format hat

    ______01.01.__02.01.__03.01.
    apfel___x
    birne___x_______x
    banane_________________x

    die "_" sind nur zur darstellung des problems

    könnt ihr mir da helfen? komme überhaupt nicht mehr weiter damit, weil ich nicht weiss, wie ich die werte entsprechend in die php tabelle bekomme

    jörg

  • #2
    PHP-Code:
    $q mysql_query("select distinct tag from tabelle order by tag");
    for (
    $tage = array(); list($tag)=mysql_fetch_row($q);)
      
    $tage[] = $tag;
    $q mysql_query("select obst, tag from tabelle order by obst,tag");
    echo 
    '<table border="1"><tr><th>Obst</th>';
    foreach(
    $tage as $tag) echo "<th>$tag</th>";
    $obst_alt '';
    while (list(
    $obst$tag)= mysql_fetch_row($q))
    {
      if (
    $obst!=$obst_alt)
      {
        echo 
    "</tr><tr><th>$obst</th>";
        
    $obst_alt $obst;
        
    $k 0;
      }
      while (
    $tage[$k]!=$tag)
      {
        echo 
    '<td>&nbsp;</td>';
        
    $k++;
      }
      echo 
    '<td>x</td>';
      
    $k++;
    }
    echo 
    '</tr></table>'
    Probleme wird es mit dem Datum geben, da mysql diese als Strings sortieren wird - damit käme der 1.April vorm 2.März.
    Das Datum also besser als DATE ablegen (yyyy-mm-dd) und beim select von mySQL umformen lassen: date_format(tag,'%d.%m.')
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      hey vielen dank erstal für deine antwort. - noch ne zusätzliche frage wäre es eigentlich auch möglich, dass wenn ich die sql tabelle um den eintrag name erweitere das anstelle des X der name steht

      geht das

      :-) jörg

      Kommentar


      • #4
        na sicher ...
        2. Query = "select obst,tag,name from tabelle ..."
        und
        while (list($obst, $tag, $name)= mysql_fetch_row($q))
        und
        echo '<td>x</td>'; ersetzen durch echo "<td>$name</td>";
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          hey ich muss dich nochmal stören

          wie müsste das script denn aussehen, wenn ich in der oberen datumzeile alle daten eines monats stehen habe´n wollte, also auch die, die nicht in der db stehen. und es trotzdem funzen soll mit den einträgen

          hast du da auch noch was auf lager

          :-) jörg

          Kommentar


          • #6
            Du musst dir nur das Array $tage entsprechend vorbereiten ...
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar


            • #7
              hallo titus
              gut das du schreibst nur - bin leider ein newbie - hast du da vielleicht noch ein letztes mal eine erbarmungsminute für weitere hilfe

              :-) jörg

              Kommentar


              • #8
                schau mal ins PHP-Handbuch unter XVIII. Datums- und Zeit-Funktionen
                Bau dir eine Schleife, in der du beim gewünschten Datum ( $t=mktime(...); ) anfängst und in Tagen ($t+=86400; Sekunden) vorwärts zählst ... in jedem Schleifendurchlauf packst du dann das Datum im gewünschten Format ( date('d.m.',$t); ) ans Array dran.
                mein Sport: mein Frühstück: meine Arbeit:

                Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                Kommentar


                • #9
                  blos jetzt beginnt doch mein problem - jetzt muss ich doch zu den obstsorten, die untereinander stehen sollen die namen in die entsprechenden zellen in der html tabelle bekommen - das ist jetzt leider mein problem

                  :-) jörg

                  Kommentar


                  • #10
                    hey gemeinschaft
                    bekomme bei nachfolgendem code folgende fehlermeldung


                    Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\planet\such.php on line 9
                    Obst
                    Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\planet\such.php on line 15




                    das ist mein script

                    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
                    <html>
                    <body>
                    <?
                    //grundsätzliche Varibalen:


                    $q = mysql_query("select distinct tag from tabelle order by tag");
                    for ($tage = array(); list($tag)=mysql_fetch_row($q)
                    $tage[] = $tag;
                    $q = mysql_query("select obst, tag from tabelle order by obst,tag");
                    echo '<table border="1"><tr><th>Obst</th>';
                    foreach($tage as $tag) echo "<th>$tag</th>";
                    $obst_alt = '';
                    while (list($obst, $tage)= mysql_fetch_row($q))
                    {
                    if ($obst!=$obst_alt)
                    {
                    echo "</tr><tr><th>$obst</th>";
                    $obst_alt = $obst;
                    $k = 0;
                    }
                    while ($tage[$k]!=$tag)
                    {
                    echo '<td>&nbsp;</td>';
                    $k++;
                    }
                    echo '<td>x</td>';
                    $k++;
                    }
                    echo '</tr></table>';
                    ?>

                    </body>
                    </html>

                    was ist denn jetzt schonwieder falsch

                    Kommentar


                    • #11
                      heisst deine tabelle "tabelle" und zeit spalte "tag" ?
                      meine Projekte bestaunen: http://www.kleiza.de

                      Kommentar


                      • #12
                        ja genau

                        Kommentar


                        • #13
                          am besten du erweiterst den mysql_query-Befehl:
                          $q = mysql_query (...) or die (mysql_error());.
                          Damit reicht PHP die Fehlermeldung von mysql an den Browser weiter; und es wird um einiges einfacher, den Fehler zu finden.
                          mein Sport: mein Frühstück: meine Arbeit:

                          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                          Kommentar


                          • #14
                            was hat das mit meinem thread zu tun?

                            oder seh ich das falsch

                            Kommentar


                            • #15
                              das hat das mit deinem thread zutun, das dann die fehlermeldung angezeigt wird.. machs einfach
                              meine Projekte bestaunen: http://www.kleiza.de

                              Kommentar

                              Lädt...
                              X