SQL-Abfrageergebnis auf mehrer Spalten ausgeben

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

  • SQL-Abfrageergebnis auf mehrer Spalten ausgeben

    Hallo,

    ich möchte einen Schichtplan erstellen. Alle Mitarbeiter sollen auf einem Blick nebeneinander stehen. Ansicht für einen Monat. Wie kann ich nun dynamisch die Mitarbeiter abfragen und dann für jeden eine Spalte mit alle Tagen eines Monats als Zeilen generieren.

    Hier mein momentaner Ansatz:


    PHP-Code:
    <?php 
    #####################################################
    #                                                    #
    #               Schichtplan                         #
    #                                                    #
    #####################################################
    require('../include/config.inc.php');
    #Abfrage
    $sqlplan="SELECT * from th_schichtplan";
    $exeplan=mysql_query($sqlplan$connection) or die(mysql_error());
    $exeplan2=mysql_query($sqlplan$connection) or die(mysql_error());
    $exeplan3=mysql_query($sqlplan$connection) or die(mysql_error());
    $row_plan mysql_fetch_assoc($exeplan);
    $row_plan2 mysql_fetch_assoc($exeplan2);
    $row_plan3 mysql_fetch_assoc($exeplan3);
    $totalRows_plan mysql_num_rows($exeplan);
    ?>
    <body id="iframespace_w">
    <div class="box1">
    <table width="100%" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
        <?php do { ?>
        <tr bgcolor="<?php switchColors('#FFFFFF','#EEEEEE'); ?>">
            <td id="tdstyle2"><?php echo $row_plan['tag'];?></td>
            <td id="tdstyle2"><?php echo $row_plan['personr'];?></td>
            <td id="tdstyle2"><?php echo $row_plan['schicht'];?></td>
        </tr>
        <?php } while ($row_plan mysql_fetch_assoc($exeplan)); ?>
    </table>
    </div>

    <div class="box2">
    <table width="100%" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
        <?php do { ?>
        <tr bgcolor="<?php switchColors('#FFFFFF','#EEEEEE'); ?>">
            <td id="tdstyle2"><?php echo $row_plan2['tag'];?></td>
            <td id="tdstyle2"><?php echo $row_plan2['personr'];?></td>
            <td id="tdstyle2"><?php echo $row_plan2['schicht'];?></td>
        </tr>
        <?php } while ($row_pla2n mysql_fetch_assoc($exeplan2)); ?>
    </table>
    </div>

    <div class="box3">
    <table width="100%" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
        <?php do { ?>
        <tr bgcolor="<?php switchColors('#FFFFFF','#EEEEEE'); ?>">
            <td id="tdstyle2"><?php echo $row_plan3['tag'];?></td>
            <td id="tdstyle2"><?php echo $row_plan3['personr'];?></td>
            <td id="tdstyle2"><?php echo $row_plan3['schicht'];?></td>
        </tr>
        <?php } while ($row_plan3 mysql_fetch_assoc($exeplan3)); ?>
    </table>
    </div>

  • #2
    Also erstmal ne Frage: warum führst Du dreimal hintereinander das selbe query aus?

    Ansatz:
    Du brauchst die distincten Personalnummern, die in frage kommen, damit bestimmst Du die BReite der Tabelle, also die Anzahl der Spalten, dann fügst Du einfach den Monat reihe für reihe also nach datum sortiert ein.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Bei den Abfrage hätte ich noch eine "where personr=XX" eingefügt.

      Wie schaffe ich es das bei der nächsten Personalnummer einfach eine Spalte angefügt wird?

      Kommentar


      • #4
        Da Du eine Tabelle benutzt würde ich zeilenweise vorgehen.

        Du könntest alle benötigten Daten in ein mehrdimensionales array lesen z.B.

        $ma = array();
        $ma['ma1'] = array(1=>'Spät',3=>'früh');
        $ma['ma2'] = array(1=>'Nacht',17=>'früh');
        etc.
        Wobei ma1 und ma2 indexe sind und die personalnumemr sein können

        daraus bildest Du dann Deine Tabelle, die Anzahl der Zeilen ist ja durch die Anzahl der Tage im Monat vorgegeben...

        zum Beispiel....
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          aber ich habe doch schon array mit $row_plan erstellt.

          Kommentar


          • #6
            ich benötige irgendwie noch eine Denkanstoß wie ich die Tabelle dynamisch erstelle.

            Ich frage alle Daten eines Monats ab. Das Ergebnis liefert 5 Mitarbeiter.

            Wie kann ich nun die Tabelle dynamisch erstellen?

            Tabellenschema:

            Datum / Personalnr + Schicht / 2. Personalnr + Schicht / 3. Personalnr + Schicht/ ...

            Kommentar


            • #7
              [ironie an]
              Oh Sorry, das hatte ich nicht gesehen...
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Kommentar

              Lädt...
              X