2011-06-17 8 views
1

私はmysqlデータベースからデータを取るテーブルを生成しようとしています。 8列ありますが、行数はデータベースからの情報量に応じて変化します。私は変数が2つあり、2つのwhileループを使用する方法はわかりません(または正しい選択であるかどうか)。可変な行とセルを持つhtmlテーブルを生成

以下のコードは、8列と可変数の行を持つテーブルを生成できますが、thingを連続した整数に置き換える方法はわかりません。私は、各セルが順次numbers = $end

CODEまでwhileループのようにその中にただ一つの整数したいと思う:

<?php 

$end=82; //will get all this data from a dabase 
$rows=ceil($end/8); 
$x=0; 
$start=0; 
?> 
<table> 
<?php 
While ($x<=$rows){ 


echo" 

     <tr> 
     <td> 
      thing 
     </td> 
     <td> 
      thing 
     </td> 
     <td> 
      thing 
     </td> 
     <td> 
      thing 
     </td> 
     <td> 
      thing 
     </td> 
     <td> 
      thing 
     </td> 
     <td> 
      thing 
     </td> 
     <td> 
      thing 
     </td> 
    </tr> 

    "; 
    $x++; 
    } 
?> 
</table> 
+0

返されるレコードの数(ひいては生成する必要があるテーブル行の数)以外に何が変わるのですか? – kinakuta

+0

@kinakuta可変であるのは行の数と各セルの内容だけです。各セルは、$ end-7〜$ endの連続番号を言うことを意味する$ end – kirby

+0

まで連続番号を持つべきですか?それらは8つの数字ですか? –

答えて

1

この意志出力行あたり8つの数字1で始まり$endに行きます。 $maxprobsがここにいるのはわかりません。

<?php 

$end=82; //will get all this data from a dabase 
$rows=ceil($end/8); 
$x=0; 
$start=0; 
?> 
<table> 
<?php 
while($x<=$rows) { 
    echo "<tr>"; 
    for ($y = 0; $y < 8; $y++, $start++) { 
    if ($start <= $end) echo "<td>$start</td>"; 
    } 
    echo "</tr>"; 
    $x++; 
} 
?> 
</table> 
+0

$ end = $ maxprobsそれらは同じものでなければなりません。私は変数を混乱させました – kirby

0

は、テーブルの開始タグを書き込む..ほぼすべてのエントリは例があり、データベースのものは、whileループを示し、これはそれを行うための最善の方法である、PHPのウェブサイトを見てみましょう加えて任意のヘッダ..

ことは、より多くのデータベースのデータを取得し、それを取得し、

表示テーブル行は、開始タグ フィールドをループすることで、行を表示し、セルタグ の間にそれらの出力を行うようにしながら、ディスパール行タグ

の終わりが今、あなたのデータを終えたY、程度の例がたくさんありますテーブル

の終わりを書きます。

フィールドをループする理由は、彼らが "foreach"を発明したことです。例えば、あなたが0または10000の場合、連続していなくても、それぞれ1つずつ行くことができます。 、梨、bannana ..

1

私は質問しなければならない - あなたがMySQLデータベースから行を引っ張って、あなたのテーブルにデータに応じて動的な行数を持たせたいのなら、 while loopmysql_fetchの機能を通常の方法でやっていないのですか?

$data = mysql_query("SELECT row1, row2, ... , row8 FROM table WHERE ...); // Sample query, edited for brevity. 

echo "<table>"; 

while ($result = mysql_fetch_object($data)) 
(
     echo "<tr>"; 
     echo "<td>".$data->row1."</td>; 
     echo "<td>".$data->row2."</td>; 
     ... // Edited for brevity. Include as many columns as you queried. 
     echo "<td>".$data->row8."</td>; 
     echo "</tr>"; 
} 

echo "<table>"; 

このようにしなければならない特別な理由がない限り、この方法を使用します。柔軟性があり、クエリが返す行数だけ印刷します(つまり、コードは変更する必要はありません)。

mysql_fetch_objectとmysql_queryに関する追加情報はそれぞれherehereです。

関連する問題