-1

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

(同样对于奖励积分,数据库中的另一列是一个布尔值,用于指示任务是否完成。如果这是真的,我希望 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>
4

1 回答 1

5

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

$result=mysql_query("SELECT Name FROM CLOAS_Team");

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

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

$names = array();
while($row = mysql_fetch_assoc($result))
{
$names[] = $row['Name'];
}

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

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

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

  • 你不能只发明 html 元素称为<h3names>
  • 我怀疑您是否要将 id 属性设置为“不完整”。一个 id 应该是唯一的,我希望你应该把它作为一个类(类 =“不完整”)
  • 我认为您的行header("Refresh: 60; URL=$url");不会做任何事情,因为您的标题已经发送到页面。如果你想让这条线工作,它需要在顶部,在任何输出被发送到浏览器之前。

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

$result=mysql_query("SELECT Name, Completed FROM CLOAS_Team");

你的循环现在是这样的;

    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 } ?>
于 2012-12-18T17:25:48.927 回答