Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Sprawdź te same wiersze w pętli while i umieść je w osobnej tabeli

Możesz po prostu zebrać je wszystkie najpierw w kontenerze, używając id s jako klucze, dzięki czemu zostaną zgrupowane. Następnie po prostu wydrukuj je odpowiednio:

$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/>';
}

To zadziała, jeśli te pola są po prostu takie, jeśli potrzebujesz czegoś bardziej dynamicznego, potrzebujesz innego wymiaru i zamiast po prostu naciskać name , musisz popchnąć cały wiersz:

$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/>';
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyłapany wyjątek:java.sql.SQLException:liczba kolumn nie odpowiada liczbie wartości w wierszu 1

  2. zapobiegaj usuwaniu * z tabeli, chyba że określono klucz podstawowy

  3. Instrukcja SELECT nie używająca possible_keys

  4. Wyszukiwanie podobnych wzorców liczbowych w tabeli

  5. Zabijanie zapytania MySQL podczas wykonywania za pomocą PHP i AJAX