1

ご挨拶、

1つのテーブルに区切り文字「、」を使用してmysqlにデータを保存しています。データベースにも行と列が保存されています。ここで、データベースに格納されている行と列番号を使用してデータを出力し、テーブルを描画する必要があります。

行番号と列番号はユーザー入力であるため、異なる場合があります。

たとえば、列に 3、行に 3 という数字があるとします。

私はそれを表示のようにする必要があります、

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

d1-d9 は、mysql データベースに格納されたデータで、1 つのテーブルに区切り文字 "," が含まれます。

私を助けてくれてありがとう。

4

3 に答える 3

6

次のように、explode() 関数を使用して、データ列のコンマ区切りの値を配列に変換できます。

<?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');
?>

テーブルを表示するには、ネストされた 2 つの for ループが必要です。

<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>
于 2008-11-16T13:43:14.763 に答える
6

これはまさにこの問題を解決するのに役立ちませんが、良いアドバイスの言葉: コンマ区切りの値をデータベース フィールドに絶対に書き込まないでください。このように格納された情報を賢明に照会することはできず、アプリケーション コードは醜い変換で雑然とします。代わりに、メイン テーブルへの参照と値ごとに 1 つの行を持つ別のテーブルを使用します。

于 2008-11-16T13:04:12.237 に答える
0

ユーザーが2行と3列のテーブルサイズを設定し、6つのセルに何らかの入力を行うと仮定すると、データベースに送られるデータは次のようになります

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

セルからデータを取得し、取得した文字列で爆発させると、8 つの要素を持つ 1 次元配列が得られます

$r = $e[0] 行

$c = $e[1] 列

$e[2-7] データ

  • 開始 < テーブル > タグの書き込み
  • 2 つのループ、1 つずつ、
  • 最初のものは、行の開始のコードを生成します
  • 書き込み開始 < tr > タグ
  • 1 つの内部では、行のコードが生成されます。
  • 開始 < td > タグを書く
  • write data $e[1 + ループの内側と外側から計算された位置]
  • 終了 < td > タグを書く
  • 内部ループの終わり
  • 書き込み終了 < tr > タグ
  • 外側のループの終わり
  • < table > タグを閉じる書き込み

それはあなたにアイデアを与えるはずです

于 2008-11-16T12:08:18.167 に答える