Я хотел бы сначала проверить все равные строки и затем поместить их в отдельную таблицу
это то, что я сделал до сих пор
table1 | id | name | | 1 | JUS | | 1 | NUM | | 2 | SET | /** * this is the the query for retrieving the data * from table1 */ $query="SELECT id, name FROM table1 order by id"; $results=$db->query($query); $previous=''; while($row=mysqli_fetch_assoc($results)){ $id=$row['id']; $name=$row['name']; if($id==$previous){ /** * This is where i am stucked up */ $current=''; } $previous=$id; }
Я хочу получить идентификатор с 1
в качестве значения в одну таблицу html, например, ниже
first html table ID | 1 | 1 | Name | JUS | NUM |
а также получить идентификатор с 2
как значение в другую таблицу html. Таким образом, во всех случаях мы получим отдельные таблицы, если id
не совпадают
second html table ID | 2 | Name | SET |
Любая идея о том, как это сделать, ценится. Благодарю.
Сначала вы можете собрать все их в контейнере, используя 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/>'; }
с$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/>'; }