-1

データベースに名前のリストがあり、1つずつ表示したい

(ボーナスポイントの場合も、データベースの別の列は、タスクが完了したかどうかのブール値です。これがtrueの場合、cssコンテンツボックスの背景を赤ではなく緑にします。)

では、1行目から名前を選択して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は一意である必要があります。これをクラスとして入れる必要があります(class = "incomplete")
  • 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 に答える