1

私は次のようなスクリプトを持っています

$output="<table class='products'><tr>"; 
while($info = mysql_fetch_array( $data )) { 
    //Outputs the image and other data
    $output.= "<td>
    <img src=http://localhost/zack/sqlphotostore/images/"   .$info['photo'] ." width=323px ></img> 
    <b>Name:</b> ".$info['name'] . "
    <b>Email:</b> ".$info['email'] . " 
    <b>Phone:</b> ".$info['phone'] . "</td> "; 
}
$output.="<tr></table>";
print $output;
?>

すべての結果が長い水平線で表示されます。3 カウント後に新しい行に表示されるように結果を分割するにはどうすればよいですか。

4

2 に答える 2

4

カウンターを保持し、3つの画像ごとに新しいテーブル行を出力します

$output="<table class='products'>"; 

$counter = 0;
while($info = mysql_fetch_array( $data )) 
{  
    if( $counter % 3 == 0 )
        $output .= '<tr>';

    $output .= "<td>";
    $output .= "<img src=http://localhost/zack/sqlphotostore/images/".$info['photo'] ." width=323px ></img>";
    $output .= "<b>Name:</b> ".$info['name'];
    $output .= "<b>Email:</b> ".$info['email'];
    $output .= "<b>Phone:</b> ".$info['phone']."</td> ";

    if( $counter % 3 == 0)
         $output .= "</tr>";

    $counter++;
}
$output.="</table>";
print $output;
?>
于 2012-08-10T20:08:36.030 に答える
3

カウンターを追加し、3の倍数に達するたびに新しい行を開始します。

$counter = 0;
while($info = mysql_fetch_array($data)) {
   if ($counter++ % 3 == 0) {
       if ($counter > 0) {
           $output .= "</tr>";
       }
       $output .= "<tr>";
   }
   // stuff
}
if ($counter > 0) {
    $output .= "</tr>";
}

$output .= "</table>";

注意:質問に答えるのに役立たないかもしれませんが、mysql_*関数の使用をやめる必要があります。それらは非推奨になっています。代わりに、PDO(PHP 5.1以降でサポート)またはmysqli(PHP 4.1以降でサポート)を使用してください。どちらを使用すればよいかわからない場合は、この記事をお読みください

于 2012-08-10T20:04:54.533 に答える