0

我是这里的大菜鸟,所以我想在我去的时候弄清楚。

我想对“id、first 和 last”进行 SQL 请求,并将它们中的每一个存储在一个变量中。代码的下半部分将处理这些变量。

下面的语句只是为了查看是否开始分配 var... 显然不是,但我没有收到错误,只是空白行。我怎样才能得到一组信息来做某事?

$newIDs = mysql_query("SELECT per_ID, per_FirstName, per_LastName FROM person_per WHERE DATE_SUB(NOW(),INTERVAL 6 MONTH)<per_FriendDate ORDER BY per_FriendDate DESC") or die(mysql_error());



while($row = mysql_fetch_assoc($newIDs)){
    echo $row ['per_ID'] = $per_ID;
    echo $row ['per_FirstName'] = $per_FirstName; 
    echo $row ['per_LastName'] = $per_LastName;
    //below is for testing purposes only
    echo $per_FirstName;
    echo "<br/>";

}

print $per_ID;
echo $per_LastName;
4

3 回答 3

1

我想你想要更多类似的东西来进行测试:

while ($row = mysql_fetch_assoc($newIDs)) {
    $per_ID = $row['per_ID'];
    $per_FirstName = $row['per_FirstName'];
    $per_LastName = $row['per_LastName'];
    // below is for testing purposes only
    echo $per_FirstName;
    echo "<br/>";
}

当您实际上想要保留查询的所有结果时,您需要执行以下操作:

$rows = array();
$i = 0;

while ($row = mysql_fetch_assoc($newIDs)) {
    $rows[$i] = $row;
    // below is for testing purposes only
    echo $rows[$i]['per_LastName'];
    echo "<br/>";

    $i++;
}

此外,您应该注意 mysql_fetch_assoc() 实际上是一个已弃用的 PHP 函数,根据手册页: http: //php.net/manual/en/function.mysql-fetch-assoc.php

于 2013-10-15T19:09:30.060 回答
0
echo $row ['per_ID'] = $per_ID;

应该

$per_ID=$row['per_ID'];

你的回声$per_ID;应该可以工作

由于它在循环中,您每次都会覆盖 $per_ID 并最终获得最后一个值。

于 2013-10-15T18:49:34.560 回答
0

看起来您的问题出在以下陈述中:

echo $row ['per_ID'] = $per_ID;
echo $row ['per_FirstName'] = $per_FirstName; 
echo $row ['per_LastName'] = $per_LastName;

那里的等号将变量的值$per_ID(当时未分配)分配给数组。那不是你想要的。

相反,您可能想要这样的东西:

$per_ID = $row ['per_ID'];

由于您有一个 while 循环,您将在其中不断写入相同的三个变量,因此事情变得更加复杂。因此,循环结束后,您将只有最后一组字段的值。

于 2013-10-15T18:49:37.400 回答