2
<?php   
$q=select * from students where (dynamic for user searching)   
$qry=mysql_fetch_array($q);   
while($row=mysql_fetch_array())   
{   
   **// i do not need data here?**   
}   
?>   
< table>   
< tr>< td><?php echo **$row[?][?];** ?>< /td>< td><?php echo **$row[?][?];** ?>< /td>...< /tr>   
< tr>< td><?php echo **$row[?][?];** ?>< /td>< td><?php echo **$row[?][?];** ?>< /td>...< /tr>   
....    
< /table> 

htmlテーブル形式で動的レポートを生成する必要がある場合、htmlテーブルの行と列は結果に対して静的であるため、inwhileループでechoを使用できません。whileループの外側にアクセスする必要があります。テーブルの各セルは個別に表示されますが、時間がかかり、代替手段や解決策の長さが長くなりますか?

4

2 に答える 2

4

while ループを使用する必要はありません。必要に応じてデータを取得できます。

$row1 = mysql_fetch_array($qry);
$row2 = mysql_fetch_array($qry);

ただし、リソース (この場合は $qry) を追跡する必要があり、mysql_fetch_*() を入力し続ける必要があるため、これを行うのは好きではありません。そのため、結果を使用する前に配列にロードする傾向があります。

$result = array();
while($row=mysql_fetch_object($qry))
{
    $result[] = $row;
}
于 2012-06-05T00:16:26.567 に答える
2

ループ内でテーブルを作成し、それをページにエコーします。たとえば、各行にユーザーの ID と名前が含まれるテーブルを作成する場合、次のようになります。

$table = "";
while($row=mysql_fetch_array($qry)) {   
   $tablerow = "<tr><td>" . $row['id'] . "</td><td>" . $row['name'] . "</td></tr>";
   $table .= $tablerow;
}   

// you've built a string with the entire table. Now write it to the page.
echo($table);

while ループの外でテーブルを構築することは、通常は悪い考えです。なぜなら、多くのコードを繰り返していて、何行入れる必要があるのか​​わからないからです。あなたの質問(おそらく、クエリから特定の特定の行のみが必要なためですか?)、 while ループで配列を作成し、その配列をその外側で参照します。

$results = array();
while($row=mysql_fetch_array()) {   
    $results[] = $row;
}       

<td><?php echo($results[0]['id']) ?></td>次に、最初のユーザーの ID 番号などをセルに書き込むために使用できます。

于 2012-06-05T00:15:50.543 に答える