Ich versuche, mehrstufige Header-Tabelle dynamisch zu generieren. Leider habe ich nach langen Versuchen festgestellt, dass ich das alleine nicht kann.Tabelle Clospan-Header dynamisch generieren
Was ich mich versuche zu tun, um die Header-Zellen in eine Zelle wie auf dem Bildschirm zu fusionieren:
Hier ist mein Arbeits PHP-Code ist. Nur eine Sache, die getan werden muss, ist trier 1 Header
PHP-Code:
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<!--
/**************
* CSS styles *
**************/
-->
<style type="text/css">
h1 {font-family:Segoe UI;font-size:18px;}
h2 {font-family:Segoe UI;font-size:14px;font-weight:normal;}
table {border-collapse:collapse;border-spacing:0;border-color:#ccc;}
th {font-family:Segoe UI;font-size:13px;font-weight:bold;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#ccc;color:#333;background-color:#f0f0f0;}
td {font-family:Segoe UI;font-size:13px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#ccc;color:#333;background-color:#fff;}
</style>
<!--
/**********************
* connection details *
**********************/
-->
<?php
$host = "127.0.0.1";
$user = "dnlw";
$pass = "";
$database = "ksiegarnia";
$port = 3306;
$connect = mysql_connect($host, $user, $pass, $port);
if (!$connect)
{
die("Can't connect to database");
}
if (!mysql_select_db($database))
{
die("Can't select database");
}
/*****************
* sending query *
*****************/
$query = file_get_contents("query.txt");
mysql_query("SET NAMES 'utf8'");
$result = mysql_query($query);
$row_num = mysql_num_rows($result);
$fields_num = mysql_num_fields($result);
if (!$result)
{
die("Query to show fields from table failed");
}
/**********************
* printing the table *
**********************/
echo "
<title>Query result</title>
<h2>znaleziono: <b>{$row_num}</b></h2>
<table>
<thead>
<tr>";
// ?????????????????????????????????????????????
for($i=0; $i<$fields_num; $i++)
{
$header = mysql_fetch_field($result);
echo "<th>{$header->table}</th>";
}
echo "
</tr>
<tr>";
// printing table headers
for($i=0; $i<$fields_num; $i++)
{
$header2 = mysql_fetch_field($result);
echo "<th>{$header->name}</th>";
}
echo "
</tr>
</thead>
<tbody>
<tr>";
// printing table rows
while($row = mysql_fetch_row($result))
{
echo "<tr>";
// $row is array... foreach(..) puts every element
// of $row to $cell variable
foreach($row as $cell)
echo "<td>$cell</td>";
echo "</tr>\n";
}
mysql_free_result($result);
echo"
</tr>
</tbody>
</table>";
?>
</body>
</html>
Link zur Datenbank: https://1drv.ms/u/s!AvpVESbXIIvxhrByuEodnjt5JTdgLA
Wow! So elegant! Vielen Dank!!! – Daniel
Sicher! Also sieht $ tables wie {klienci: 4, zamowienia: 5, ksiazki: 5} aus. Der foreach führt eine Schleife über jedes Element und weist den Schlüssel des assoziativen Arrays $ table zu, und sein Wert entspricht $ span. In der ersten Schleife wird $ table "klienci" und $ span den Wert "4" enthalten. Hilft das? – MacPrawn
Ja, es hilft, aber ich kann immer noch nicht verstehen, warum $ span 4 auf der ersten Schleife ist. Wie ich es verstehe, sollte es von 1 für die 1. Schleife bis 4 für die 4. lopp erhöhen ... – Daniel