将SQL输出存储在变量中

时间:2013-10-15 18:46:29

标签: php mysql sql variables

我在这里是一个大菜鸟,所以我想把它弄清楚。“

我想对“id,fist和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;

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

应该是

$per_ID=$row['per_ID'];

你回应$per_ID;应该工作

在循环中,你每次都会覆盖$ per_ID,并以最后一个值结束。

答案 2 :(得分: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循环,你将继续写入相同的三个变量。因此,在循环结束后,您将只拥有最后一组字段的值。