Frage

Grüße,

Ich habe auf mysql mit Begrenzer gespeicherten Daten „“ in 1 Tabelle. Ich habe Zeilen und Spalten zu auf Datenbank gespeichert. Jetzt habe ich die Ausgabe gespeichert, die Daten unter Verwendung von Zeilen und Spaltennummer auf Datenbank, um die Tabelle zu ziehen.

Zeilen und Spaltennummern sind Benutzereingaben, so kann es variiert.

Lassen Sie sagen, es ist die Nummer 3 auf Spalte und 3 Reihen.

Ich brauche es wie Display zu tun, wie,

|___d1__|___d2__|___d3__|
|___d4__|___d5__|___d6__|
|___d7__|___d8__|___d9__|

Wo d1-d9 die Daten auf MySQL-Datenbank mit Trennzeichen gespeichert sein würde "" in einer Tabelle.

Vielen Dank für die mir geholfen haben.

War es hilfreich?

Lösung

Sie können die durch Komma getrennte Werte aus Ihrer Datenspalte in ein Array drehen explode () Funktion:

<?php
  $result = mysql_query('SELECT rows, columns, data from table_name where id=1');
  $record = mysql_fetch_assoc($result);

  $rows = $record['rows'];
  $columns = $record['columns'];

  $data = explode(',' , $record['data']);

  if (sizeof($data) != $rows * $columns) die('invalid data');
?>

, um die Tabelle anzuzeigen, benötigen Sie zwei verschachtelte for-Schleifen:

<table>
<?php for ($row = 0; $row < $rows; $row++) : ?>
    <tr>
    <?php for ($column = 0; $column < $columns; $column++) : ?>
        <td>
            <?php echo $data[$row * $columns + $column]; ?>
        </td>
    <?php endfor ?>
    </tr>
<?php endfor ?>
</table>

Andere Tipps

Dies werden Ihnen genau dieses Problem nicht lösen, sondern ein Wort von gutem Rat: nie durch Komma getrennt Werte in ein Datenbankfeld schreiben. Sie können nicht vernünftig Informationen wie diese gespeicherten abfragen und Ihr Anwendungscode wird mit hässlichen Umwandlungen vollgestopft werden. Verwenden Sie stattdessen eine separate Tabelle mit einem Verweis auf die Haupttabelle verwenden und eine Zeile pro Wert.

, dass die Benutzer eingestellt Tabellengröße für 2 Reihen unter der Annahme und 3 Spalten und macht einige Eingänge fot 6 Zellen, Daten, die in der Datenbank gehen werden

  

2,3, d1, d2, d3, d4, d5, d6

Wenn Sie Daten aus der Zelle holen werden und auf geholt String explodieren erhalten Sie 1 Dimension Array mit 8 Elementen

$ r = $ e [0] Zeilen

$ c = $ e [1] cols

$ e [2-7] Daten

  • wrtite openning Tag
  • zwei Schleifen, eine in einem anderen,
  • erstes wird Code für den Start der Reihe erzeugen
  • wrtite openning
  • -Tag
  • innerhalb eines Code für Zeile genereate wird.
  • Schreiböffnung
  • -Tag
  • Ende außerhalb Schleife
  • wrtite Schließen
  • Tag
  • Schreibdaten $ e [1 + Position calulated von innen und außen Schleifen]
  • Schreib Schließen
  • Tag
  • Ende Looping
  • wrtite Schließen
  • Es sollte Ihnen die Idee geben

    Lizenziert unter: CC-BY-SA mit Zuschreibung
    Nicht verbunden mit StackOverflow
    scroll top