php - 如何使图像回显与表格行中的下一个图像对齐

标签 php css mysql html-table

我在使我的图像从我的 mySQL 数据库中正确排列时遇到了问题。我遇到的问题是,我基本上想从 CMS 在此页面上加载 24 张图像。我将图像加载到一个表格中,该表格设计为每行 4 个图像。问题:第一行有 2 张图片,第二行有 1 张图片,第三行有 3 张图片,第四行有 1 张图片,第五行有 3 张图片,第六和第七行每行有 1 张图片。我无法每行获得 4 张图像。有人可以帮忙吗?

<!-- IMAGE GALLERY -->

    <h2 class="text1">Image Gallery</h2>
    <p>Click any image to open up a larger version</p>
    <div class="gallery">
        <?php
            $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
            $query = "SELECT * FROM cmhimage ORDER BY id DESC";
            $data = mysqli_query($dbc, $query);
            ?><table><?php 
            $level = 1;
            while ($row = mysqli_fetch_array($data)) { 
                $description = $row['capt'];
                $photo = $row['file'];
                $count = 1;
                $level = $level + $count;

                if (($level == 4) || ($level == 8) || ($level == 12) || ($level == 16) || ($level == 20) || ($level == 24)){
                    echo '<tr>';
                }

                 // Display the data
                echo '<td><table><tr><td><a href="manage/image/' . $photo . '" target="_blank"><img class="imgcontain" src="manage/image/' . $photo .'" border="0"/></a></td></tr></td><br/>';  
                echo '<td><tr><td><p class="caption">' . $description .'</p></tr></td></table></td>';  
                if (($level == 4) || ($level == 8) || ($level == 12) || ($level == 16) || ($level == 20) || ($level == 24)){
                    echo '</tr>';   
                    }

            }
            mysqli_close($dbc);

        ?>
       </table>

如果这是问题所在,这里是 CSS。

.gallery {
width: 525px;
}
.imgcontain {
padding-right:15px; 
float: left;
width: 110px;
height: 110px
}
.caption {
font:bold 78% arial,helvetica,sans-serif; 
text-align:center; 
position: relative;
right: 10px;
color:#056063;
} 

最佳答案

有很多问题。 首先,代码几乎不可读

使用这种结构,第一个 tr 不显示 而不是

 if (($level == 4) || ($level == 8) || ($level == 12) || ($level == 16) || ($level == 20) || ($level == 24))

尝试

if($level == 1 || $level % 4 == 0)

取代了

echo '<td><table><tr><td><a href="manage/image/' . $photo . '" target="_blank"><img class="imgcontain" src="manage/image/' . $photo .'" border="0"/></a></td></tr></td><br/>';
echo '<td><tr><td><p class="caption">' . $description .'</p></tr></td></table></td>'; 

试试这个

echo '<td>';
echo ' <table>';
echo '  <tr>';
echo '    <td>';
echo '       <a href="manage/image/' . $photo . '" target="_blank"><img class="imgcontain" src="manage/image/' . $photo .'" border="0"/></a>';
echo '   </td>';
echo '   <td>';
echo '     <p class="caption">' . $description .'</p>';
echo '   </td>';
echo '  </tr>';
echo ' </table>';
echo '</td>';

if (($level == 4) || ($level == 8) || ($level == 12) || ($level == 16) || ($level == 20) || ($level == 24)){
                    echo '</tr>';   
                    }

和第一个一样。

尝试格式化你的代码。有了这个空间,您会看到许多单元格和行没有闭合。

编辑: 放 $计数 = 1 在一段时间开始之前! 在 while 的最后一行:

$count++;

关于php - 如何使图像回显与表格行中的下一个图像对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14303750/

相关文章:

css - 文本后面的下拉菜单

php - 从 PHP mySQL 搜索结果中排除值

php - ion auth 仅显示特定组中的用户

jquery - 我如何使用 Jquery CSS HTML 执行此滚动技巧

html - 如何按照样式表在 Google Chrome 中的加载顺序轻松查看样式表列表

PHP 错误 : Call to a member function execute() on a non-object

php - 错误: Object of class stdClass could not be converted to string

php - 使用 Doxygen 为 php 文件生成调用图

php - 更改 php.ini - 亚马逊 EC2。权限问题

php - 将三个表连接在一起 SQL PHP