PHP仅显示来自数据库的单个结果

时间:2012-10-21 18:52:23

标签: php html sql

所以我一直在研究一个小型系统,该系统涉及一些代码,用于让用户兑换它们以获得某种奖励。

到目前为止,我在PHP和HTML中都有这个脚本: http://pastebin.com/UUsEKpev

它只显示了一个您可以看到here的结果,我希望它能在显示所有结果的表格中显示多个结果。

<?php

$yn;
mysql_connect("localhost", "root", "password") or die(mysql_error());
mysql_select_db("mcv") or die(mysql_error());

$result = mysql_query("SELECT * FROM Codes")
or die(mysql_error());  

$row = mysql_fetch_array( $result );
// Print out the contents of the entry 

if ($row['Used'] == 1) {
    $yn = "Yes";
}
else{
    $yn = "No";
}

?>

<html>
<head>
    <title>Minecraft Codes</title>
    <style type="text/css">

    tbody {
        display: table-row-group;
        vertical-align: middle;
        border-color: inherit;
    }

    tr {
        display: table-row;
        vertical-align: inherit;
        border-color: inherit;
    }

    th {
        border: 1px solid #C3C3C3;
        padding: 3px;
        vertical-align: top;
        width: 20%;
        background-color: #E5EECC;
    }

    table.reference {
        background-color: white;
        border: 1px solid #C3C3C3;
        border-collapse: collapse;
        width: 50%;
    }

    table.reference td {
        border: 1px solid #C3C3C3;
        padding: 3px;
        vertical-align: top;
        width: 20%;
    }

    table, th, td, input, textarea {
        font-size: 100%;
    }

    body, p, h1, h2, h3, h4, table, td, th, ul, ol, textarea, input {
        font-family: verdana,helvetica,arial,sans-serif;
    }

    </style>
</head>

<body>
    <center>
        <br />
        <h1><u>Minecraft Server VIP Codes</u></h1>
        <br />

        <table class="reference">
            <tr>
                <th>Code</th>
              <th>Used?</th>
          </tr>
          <?php echo "<tr><td>".$row['Code']."</td><td>".$yn."</td></tr>"; ?>
        </table>
    </center>
</body>
</html>

3 个答案:

答案 0 :(得分:1)

您的问题是您只获取一行:

$row = mysql_fetch_array( $result );

该行获取结果集的当前行。你想在一个循环中这样做:

$rows = array();
while ($row = mysql_fetch_array($result)) {
    $rows[] = $row;
}

如果可以请避免使用mysql_函数,则不推荐使用它们,请参阅巨型警告hereread this

答案 1 :(得分:1)

<table class="reference">
    <tr>
        <th>Code</th>
        <th>Used?</th>
    </tr>

    <?php while ($row = mysql_fetch_array($result)): ?>
    <?php 
        if ($row['Used'] == 1) {
            $yn = "Yes";
        }
        else{
            $yn = "No";
        }
    ?>
    <tr>
        <td><?php echo $row['Code']; ?></td>
        <td><?php echo $yn; ?></td>
    </tr>
    <?php endwhile; ?>
</table>

答案 2 :(得分:0)

是的,你只调用一次mysql_fetch_row(),因此你只能检索一行。您必须将其包装到一个循环中,该循环执行的次数与行数一样多。

互联网上有数百万个你可以学习的例子......