首页 > 解决方案 > PHP:SELECT * FROM 的 echo 中的表有问题

问题描述

我正在尝试对从数据库中提取的一些表进行样式设置,我希望行中的列与列名对齐,以使其更具可读性。

尝试使用 PHP 时的唯一问题,我不知道我做错了什么,我试图在 while 循环之外创建一个表,显示名称,然后在那里启动表,然后结束while 循环内的表。但我希望所有的行都是第一行,我尝试更改 css 并移动echo "</table>";echo "<table>";但不知道我可能做错了什么让它看起来不错,或者至少组织成一个表格集,任何想法,或者我可以用更好的方法让它工作并看起来有条理?

我感谢任何帮助和评论,这里是来源和问题;

图片: 源代码中 HTML/CSS 的输出图像,正在运行的代码的给定示例。

PHP代码:

<?php
include('connect_mysql.php');
        $sql = "SELECT * FROM artist";
        $resultat = $conn->query($sql);
        echo"<table>";
        echo "<tr id='tabledesc'>";
                echo"<td class='tabledesc'>Artist Name</td>";
                echo"<td class='tabledesc'>Birthday</td>";
                echo"<td class='tabledesc'>Name</td>";
                echo"<td class='tabledesc'>Surname</td>";
                echo"<td class='tabledesc'>Country</td>";
        echo "</tr>";

        while($rad = $resultat->fetch_assoc()) {
            $artist_id = $rad["artist_id"];
            $birthday = $rad["birthday"];
            $artistname = $rad["artistname"];
            $name = $rad["name"];
            $surname = $rad["surname"];
            $country = $rad["country"];

        echo "<div class='tableselect'>";
            echo "<tr>";
                echo"<td class='tablerow'>$artistname</td>";
                echo"<td class='tablerow'>$birthday</td>";
                echo"<td class='tablerow'>$name</td>";
                echo"<td class='tablerow'>$surname</td>";
                echo"<td class='tablerow'>$country</td>";
            echo "</tr>";
        echo "</table>";
        echo "</div class='tableselect'>";

        }


        $conn->close();
?>

A$AP Ferg 列显然按预期工作,但随后 while 循环停止生成表后给出的相同行,这是我放入的 CSS:

.tableselect {
font-size: 25px;
color: tomato;
}

table, td { 
font-size: 25px;
color: tomato;
}

.tabledesc {
text-align: center;
color: black;
}

对于半途而废的问题,我很抱歉,但最后我将提供更多见解。我正在创建一个说唱数据库,用户可以在其中输入艺术家和有关他们的信息,在这里我只想选择所有行并将它们像打印为的第一列一样放入。但不幸的是我的代码有点混乱,而 PHP 是不是我的强语:D

我将不胜感激任何帮助!

标签: phphtmlcss

解决方案


您的 HTML 标签不匹配;<div>元素不能是元素的直接子元素<table>,并且结束</table>标记不应位于循环主体内。

在我看来,echoHTML 代码也是一个坏主意。首先编写 HTML,然后在需要时打开和关闭 PHP 标记。我还发现在将 HTML 与 PHP 混合时使用替代的 PHP 语法更方便。


推荐阅读