2012-04-11 6 views
0

so habe ich diesen Code, der ein Zeitplan Raster (Tage und Zeiten) und im Anschluss an eine Datenbank und Auswahl von Tabellen, wie Sie sehen können ... Was ich versuche zu tun ist Wenn zB am Montag die Klasse Englisch um 09.00 Uhr beginnt, möchte ich diese Info in das Grid einfügen, wie kann ich das erreichen? vielen DankEinfügen von Werten in ein Raster - php, sql

<?php 
error_reporting(E_ALL); 
mysql_connect('db','user','password') 
    or die(mysql_error()); 
mysql_select_db('db') 
    or die(mysql_error()); 
$sql = "select day,start,class,time 
    from event where class='english'"; 
$res = mysql_query($sql) 
    or die(mysql_error()); 

    $days = array('Monday','Tuesday','Wednesday','Thursday','Friday'); 
$times= array('09','10','11','12','13','14','15','16'); 
echo "<table id='grid'>\n"; 
echo "<tr><td></td>"; 
for($t=0;$t<count($times);$t++) 
    echo "<th>$times[$t]:00</th>"; 
echo "<tr>\n"; 
for($d=0;$d<count($days);$d++){ 
    print "<tr><th>$days[$d]</th>"; 
    for($t=0;$t<count($times);$t++) 
    echo "<td id='td_$days[$d]_$times[$t]'></td>"; 
    echo "</tr>\n"; 
} 
echo "</table>\n"; 
?> 

Antwort

0

Vor allem Gebrauch foreach() für Ihre Arrays

foreach($times as $time) 
    echo "<th>$time:00</th>"; 

Zweitens, verwirren sie nicht php mit html, so viel wie möglich. All dies macht Ihren Code zumindest sauberer. Für DB-Ergebnisse sollten Sie mysql_fetch_array();

als diesen Weg gehen:

<table id='grid'> 
    <tr> 
     <td></td> 
     <?php 
      foreach ($times as $time) 
       echo "<th>$time:00</th>"; 
     ?> 
    <tr> 
     <?php 
      foreach ($days as $day){ 
       echo "<tr><th>$day</th>"; 
       foreach ($times as $time){ 
        $english = ($day == $res['day'] && $time == $res['time']) ? $res['class'] : ''; 
        echo "<td id='td_$day_$time'>{$class}</td>"; 
       } 
      } 
     ?> 
    </tr> 
    </table> 
+0

scheint es mit der Tabelle ein Fehler zu sein? – ppaul

Verwandte Themen