在php中只打印3 td的行

时间:2014-05-30 07:56:22

标签: php mysql

我正在尝试从数据库中打印值。数据库包含图像URL。 我正在通过php检索图像URL并打印它。

我已经编写了这段代码。

<?php
            if(! $conn )
            {
                die('Could not connect: ' . mysql_error());
            }
                $sql = 'SELECT name,thumbnail,link  FROM courses';
                mysql_select_db($dbname);
                $retval = mysql_query( $sql, $conn );
            if(! $retval )
            {
                die('Could not get data: ' . mysql_error());
            }
            while($row = mysql_fetch_assoc($retval))
            {
                echo "<tr>";
                echo "<td><a href='".$row['link']."' title='Click to see schedule'><img src='".$row['thumbnail']."'></a></td>";
                echo "</tr>";
            }
            mysql_close($conn);
        ?>

此代码正在重新搜索图像URL并在桌面上显示图像。但我想每行3张图片,现在每行只打印1张图片。 我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

您需要将代码更改为仅每隔三个图像打开和关闭一行。试试这个:

$i = 0;        
while($row = mysql_fetch_assoc($retval))
{
    if($i == 0) {
        echo "<tr>";
    }
    echo "<td><a href='".$row['link']."' title='Click to see schedule'><img src='".$row['thumbnail']."'></a></td>";
    if(++$i == 3) {
        echo "</tr>";
        $i = 0;
    }
}
// To close any open rows at the end
if($i % 3 > 0) {
   echo "</tr>"; 
}

答案 1 :(得分:0)

$cc = 0;
//initially open table row
echo "<tr>"; 
while($row = mysql_fetch_assoc($retval))
{
    $cc++;
    echo sprintf(
        '<td><a href="%s" title="Click to see schedule"><img src="%s"></a></td>',
        $row['link'],
        $row['thumbnail']
    );
    //close tablerow and open new one every 3 rows
    if($cc % 3 == 0){
       echo "</tr><tr>";
    }

}
//close last table row
echo "</tr>";

答案 2 :(得分:0)

此代码连续打印3列数据。请尝试

$cols=3; $col=0;

$vars  = "<table>";
$vars .= "<tr>";

while($row = mysql_fetch_assoc($retval)){
    $col++;
    $vars .= "<td>".$row['link']."</td>";

    if($col==$cols){
        $col=0;
        $vars .= "</tr><tr>";
    }
}

$vars  = "</tr>";
$vars .= "</table>";

希望这有帮助。