PHP中的输出名称来自mysql数据库

ora*_*dit -1 html php mysql sql database

我有一个数据库中的名称列表,我想逐个显示

(对于奖励积分,数据库中的另一列是否为任务完成的布尔值.如果这是真的,我希望css内容框背景为绿色而不是红色.)

那么如何从第一行中选择一个名称,将其放入PHP变量,然后从第2行的"名称"列中选择值并将其放入另一个PHP变量或数组中的下一个项目?

谢谢你的帮助!

<html>
<head>
    <title>Title</title>
    <link rel="stylesheet" type="text/css" href="mngPWinCSS.css"/>


</head>

<body>
    <?php

        $dsn ='mysql:host=****.******.com;dbname=o****_**n';
        $username='********';
        $password ='******';

        mysql_connect('localhost',$username,$password);
        $query=mysql_query("SELECT Name FROM CLOAS_Team LIMIT 0,1");
        $bob="dkajfk";


        $url=$_SERVER['REQUEST_URI'];
        header("Refresh: 60; URL=$url"); 
        $com[1]="i";
        $com[2]="i";
        $com[3]="i";
        $com[4]="i";
        $com[5]="i";
        $com[6]="i";
        $name=mysql_fetch_array($query);



    ?>
    <div id="content">
        <img src="logjpg.JPG" alt="Smiley face" height="50" width="200">
    <h3>CLOAS Tracker</h3>

    </div>
     <div id="Content">
        <?php

        ?>

        <div id="complete">
            <h3names>
                <?php 
                    echo $name['Name'];
                ?>
            </h3names>
        </div>
        <div id="incomplete">
            <h3names>Name2</h3names>
        </div>

     </div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

cha*_*une 5

首先,您需要更改SELECT查询以选择要显示的所有行,可能是通过取消LIMIT子句.像这样的东西;

$result=mysql_query("SELECT Name FROM CLOAS_Team");
Run Code Online (Sandbox Code Playgroud)

(这将为您提供表格中的所有名称.)

接下来,您需要遍历从此查询中获得的结果,如此;

$names = array();
while($row = mysql_fetch_assoc($result))
{
$names[] = $row['Name'];
}
Run Code Online (Sandbox Code Playgroud)

这会将它们放入数组$ name中,然后您可以使用它们.您可能希望立即输出它们,而不是将它们放入数组中,也许就像这样;

while($row = mysql_fetch_assoc($result))
{ ?>
<div>
            <h3>
                <?php 
                    echo $row['Name'];
                ?>
            </h3>
        </div>
<?php } ?>
Run Code Online (Sandbox Code Playgroud)

但是,您的代码中还有更多错误.如;

  • 你不能只发明所谓的html元素 <h3names>
  • 我怀疑你想将id属性设置为'incomplete'.一个id应该是唯一的,我希望你应该将它作为一个类(class ="incomplete")
  • 我不认为你的行header("Refresh: 60; URL=$url");会做任何事情,因为你的标题已经发送到页面.如果您希望此行工作,则需要将其放在顶部,然后才能将任何输出发送到浏览器.

对于奖励点,在查询中包含"已完成"字段(如果这是它的名称),并使用此字段为您<div>在循环中显示的每个元素添加样式.所以你的查询可能会变成;

$result=mysql_query("SELECT Name, Completed FROM CLOAS_Team");
Run Code Online (Sandbox Code Playgroud)

你的循环现在就像这样;

    while($row = mysql_fetch_assoc($result))
    { ?>
    <div style = "background-color:<?php echo $row['Completed'] == true ? 'green' : ' red'; ?>">
                <h3>
                    <?php 
                        echo $row['Name'];
                    ?>
                </h3>
            </div>
    <?php } ?>
Run Code Online (Sandbox Code Playgroud)