id
. का उपयोग करके आप बस उन सभी को पहले एक कंटेनर में इकट्ठा कर सकते हैं s आपकी कुंजियों के रूप में ताकि उन्हें एक साथ समूहीकृत किया जा सके। उसके बाद, बस उसी के अनुसार उन्हें प्रिंट करें:
$data = array();
while($row = $results->fetch_assoc()){
$id = $row['id'];
$name = $row['name'];
$data[$id][] = $name; // group them
}
foreach($data as $id => $values) {
// each grouped id will be printed in each table
echo '<table>';
// header
echo '<tr>';
echo '<td>ID</td>' . str_repeat("<td>$id</td>", count($values));
echo '</tr>';
echo '<tr>';
echo '<td>Name</td>';
foreach($values as $value) {
echo "<td>$value</td>";
}
echo '</tr>';
echo '</table><br/>';
}
यह तब काम करेगा जब वे फ़ील्ड ऐसे ही हों, अगर आपको कुछ और गतिशील चाहिए, तो आपको एक और आयाम चाहिए, और केवल name
को पुश करने के बजाय , आपको पूरी पंक्ति को पुश करने की आवश्यकता होगी:
$results = $db->query('SELECT id, name, age FROM table1');
$data = array();
while($row = $results->fetch_assoc()){
$id = $row['id']; unset($row['id']);
$data[$id][] = $row; // group them
}
$fields = array('name', 'age');
foreach($data as $id => $values) {
// each grouped id will be printed in each table
echo '<table>';
// header
echo '<tr>';
echo '<td>ID</td>' . str_repeat("<td>$id</td>", count($values));
echo '</tr>';
foreach($fields as $field) {
// construct td
$temp = '';
echo "<tr><td>$field</td>";
for($i = 0; $i < count($values); $i++) {
$temp .= '<td>' . $values[$i][$field] . '</td>';
}
echo $temp; // constructed td
echo '</tr>';
}
echo '</table><br/>';
}