将foreach应用于多个数组?

时间:2013-10-23 11:30:03

标签: php mysql arrays loops foreach

我已经玩了几天这个,我不是一个专业的程序员,但我正在尝试建立一个很好的基本系统来管理当地志愿救援组织的签到/出去。 / p>

基本上我正试图让ISLOGGEDIN值设置为1的所有成员

$loggedin = mysql_query("SELECT * FROM members WHERE ISLOGGEDIN=1");
$loggedinarray=mysql_fetch_array($loggedin);

并将他们的信息(姓名等)列入表格:

foreach($loggedinarray as $key=>$value) {
    echo "
    <tr>
        <td>".$value[firstname]." ".$value[lastname]."</td>
        <td>".$value[timeloggedin]."</td>
    </tr>
    ";
}

然而,我得到的结果是随机的,而不是我正在寻找的结果!

var_dump($loggedinarray)输出:

array(12) { [0]=> string(5) "5395" ["SES_ID"]=> string(5) "5395" [1]=> string(7) "Anthony" ["FIRST"]=> string(7) "Anthony" [2]=> string(8) "LastName" ["LAST"]=> string(8) "Willison" [3]=> string(1) "1" ["ISLOGGEDIN"]=> string(1) "1" [4]=> string(1) "0" ["TRAINER"]=> string(1) "0" [5]=> string(1) "1" ["OFFICER"]=> string(1) "1" }

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

你必须使用while;它是随机的,因为它只从表中获取了一行。

$loggedin = mysql_query("SELECT * FROM members WHERE ISLOGGEDIN = 1");

if (mysql_num_rows($loggedin) > 0) {
    echo "<table>";

    while ($row = mysql_fetch_array($loggedin)) {
        echo "
        <tr>
          <td>".$row['FIRST']." ".$row['LAST']."</td>
          <td>".$row['timeloggedin']."</td>
        </tr>
        ";
    }

    echo "</table>";
}

此代码将输出表中的每一行,其中ISLOGGEDIN = 1

PS:关于数据$row['timeloggedin'],您在查询中没有它(如var_dump中所示),因此它将是一个空字符串。