ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
164
164
EMPFEHLEN
-
Hallo zusammen
Ich habe ein kleines Problem.
Ich übergebe einer Funktion einen zweidimensionalen Array..
in diesem Array hat es an verschiedenen Punkten ein Element, welche mehrere cols lang sein können.
Nun kommt aber das Hauptproblem.. Wie wandle ich diesen zweidimensionalen Array richtig in eine Tabelle um:
Hier der Beispielarray:
Wenn ich diesen Array in eine Tabelle umwandle, verschiebt es mir teilweise die anderen Felder:PHP-Code:Array
(
[0] => Array
(
[0] => Zeit
[1] => 8:00
[2] => 8:30
[3] => 9:00
[4] => 9:30
[5] => 10:00
[6] => 10:30
[7] => 11:00
[8] => 11:30
[9] => 12:00
[10] => 12:30
[11] => 13:00
[12] => 13:30
[13] => 14:00
[14] => 14:30
[15] => 15:00
[16] => 15:30
[17] => 16:00
[18] => 16:30
[19] => 17:00
[20] => 17:30
[21] => 18:00
)
[1] => Array
(
[0] => SZ Bibliothek
[2] => Array
(
[STATUS] => 1
[Duration] => 6
[WER] => rgn
[ID] => 1
[Title] => asdf
)
[12] => Array
(
[STATUS] => 1
[Duration] => 4
[WER] => rgn
[ID] => 5
[Title] => zusatzbesprechung
)
)
[2] => Array
(
[0] => SZ Hauptgebäude
[3] => Array
(
[STATUS] => 1
[Duration] => 1
[WER] => rgn
[ID] => 2
[Title] => asdfasdfa
)
)
[3] => Array
(
[0] => SZ Nebengebäude
[15] => Array
(
[STATUS] => 1
[Duration] => 2
[WER] => dg
[ID] => 4
[Title] => dani
)
)
[4] => Array
(
[0] => SZ Dachgeschoss
[1] => Array
(
[STATUS] => 1
[Duration] => 19
[WER] => rgn
[ID] => 6
[Title] => test dachgeschoss
)
)
)
Funktion:
Hier der Output in HTML:PHP-Code:$source_array=$this->generateCalendarArray(@$this->result_array,$this->rooms,$this->zeiten);
//print_r($source_array);
echo "<br /><br />";
$count_rows=count($source_array[0]);
$count_cols=count($source_array);
$s = "<div >\n";
$s .= "<table class=\"dayview\" border=\"0\">\n";
$s .= "<caption> Tagesübersicht</caption>";
$s .= "<thead>";
$s .= "<tr><td colspan=\"".$count_cols."\">";
$s .= "Reservationen vom $day.$month.$year. <input type=\"hidden\" name=\"datum\" value=\"$day.$month.$year\" />";
$s .= "</td></tr>";
$s .= "</thead>";
$s .= "<tbody>\n";
$count="";
$color_reserviert="";
for($j=0;$j<$count_rows;$j++){
$s .= "<tr>\n";
if($j==0){
for ($i=0; $i<$count_cols;$i++){
$s.="<th>".$source_array[$i][0]."</th>\n";
}
} else {
for($i=0;$i<$count_cols;$i++){
if($i!=0 && @$source_array[$i][$j]){
if(@!isset($source_array[$i][$j]["STATUS"])){
$source_array[$i][$j]["STATUS"]=0;
}
if($source_array[$i][$j]["STATUS"]==1 && @$source_array[$i][$j]["Duration"]>0){
$s.="<td style=\"background-color:#FF0000; vertical-align:top;\" rowspan=\"".$source_array[$i][$j]["Duration"]."\">".$source_array[$i][$j]["Title"]."<br/> dauer:".$source_array[$i][$j]["Duration"]."</td>";;
}elseif(empty($source_array[$i][$j])){
//elseif(@$source_array[$i][$j]["STATUS"]==0 && @$source_array[$i][$j]["Duration"]>0){
$s.="<td></td>\n";
} else {
$s.="";
}
$count=@$source_array[$i][$j]["Duration"];
} else {
//echo $count;
if($count>0 && $count--){
echo $count;
$s.="";
} else {
$s.="<td>".@$source_array[$i][$j]."</td>\n";
}
}
}
}
$s .="</tr>\n";
$count=0;
}
$s .= "</tbody>";
$s .= "</table>";
$s .= "</div>";
return $s;
Hatte jemand schon so ein Problem mit dem ColspanHTML-Code:<table class="dayview" border="0"> <caption> Tagesübersicht</caption><thead><tr><td colspan="5">Reservationen vom 5.12.2008. <input type="hidden" name="datum" value="5.12.2008" /></td></tr></thead><tbody> <tr> <th>Zeit</th> <th>SZ Bibliothek</th> <th>SZ Hauptgebäude</th> <th>SZ Nebengebäude</th> <th>SZ Dachgeschoss</th> </tr> <tr> <td>8:00</td> <td></td> <td></td> <td></td> <td style="background-color:#FF0000; vertical-align:top;" rowspan="19">test dachgeschoss<br/> dauer:19</td></tr> <tr> <td>8:30</td> <td style="background-color:#FF0000; vertical-align:top;" rowspan="6">asdf<br/> dauer:6</td></tr> <tr> <td>9:00</td> <td></td> <td style="background-color:#FF0000; vertical-align:top;" rowspan="1">asdfasdfa<br/> dauer:1</td><td></td> </tr> <tr> <td>9:30</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>10:00</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>10:30</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>11:00</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>11:30</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>12:00</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>12:30</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>13:00</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>13:30</td> <td style="background-color:#FF0000; vertical-align:top;" rowspan="4">zusatzbesprechung<br/> dauer:4</td></tr> <tr> <td>14:00</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>14:30</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>15:00</td> <td></td> <td></td> <td style="background-color:#FF0000; vertical-align:top;" rowspan="2">dani<br/> dauer:2</td></tr> <tr> <td>15:30</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>16:00</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>16:30</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>17:00</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>17:30</td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td>18:00</td> <td></td> <td></td> <td></td> <td></td> </tr> </tbody></table>
Falls ja, kann derjenige mir sagen, wie er das Problem angegangen / gelöst hat?
Danke im vorraus für eure HilfeGeändert von xloouch (18.12.08 um 11:51 Uhr) Grund: Einfügen der Erstellerfunktion
Grüsse
Xloouch
Sich selber zu bekriegen ist der schwerste Krieg.
Sich selber zu besiegen ist der schönste Sieg!
-
Du müsstest jedes mal prüfen, ob ein vorhergehendes Ereignis bereits vorüber ist und erst dann eine neue Tabellenzelle ausgeben.
Markus Wulftange
-
Hi Gumo.
Hab es schon mal so probiert gehabt, aber dannn habe ich das Problem mit der "duration" Variable, welche überschrieben wird...
Hm. wenn ich für jede Spalte eine Variable definiere, und dieser dann den entsprechenden Wert zuweise, könnte es funktionieren, oder?Grüsse
Xloouch
Sich selber zu bekriegen ist der schwerste Krieg.
Sich selber zu besiegen ist der schönste Sieg!
-
Ja, du musst das schon für jede Spalte einzeln machen.
Markus Wulftange
-
Nur, wie mach ich das, falls es mehrere "events" in einer Spalte gibt..
Grüsse
Xloouch
Sich selber zu bekriegen ist der schwerste Krieg.
Sich selber zu besiegen ist der schönste Sieg!
-
Sobald ein neues Ereignis beginnt, erhöhst du einen Zähler der Spalte um <Duration>. Bei jeder Zeile prüfst du dann, ob der Zähler gleich 0 ist, gibst dann gegebenenfalls die leere Zelle aus und dekrementierst den Zähler.
Markus Wulftange
-
Gute Idee.. ich mach mich mal dran, und poste dann das Ergebnis.
Dank dirGrüsse
Xloouch
Sich selber zu bekriegen ist der schwerste Krieg.
Sich selber zu besiegen ist der schönste Sieg!
Ähnliche Themen
-
Fehler beim erstellen einer Tabelle
Von Binio im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 22.12.07, 22:25 -
Probleme beim Erstellen einer .gif Animation
Von Rishu-chan im Forum Sonstige Grafik-ProgrammeAntworten: 0Letzter Beitrag: 08.05.07, 19:13 -
Problem beim Erstellen einer Tabelle
Von Zimtgruen im Forum Relationale DatenbanksystemeAntworten: 4Letzter Beitrag: 16.04.05, 18:16 -
probleme beim auslesen von einer mysql tabelle
Von Bl4dE im Forum PHPAntworten: 5Letzter Beitrag: 28.02.05, 18:11 -
Brauche hilfe bei erstellen einer dynamischen Tabelle in JAvascript
Von X9kl3m2 im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 22.06.04, 19:37





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren