返回
"soccertennisfootball"$interestsquery = "SELECT * FROM user_interests WHERE user_id = " . $usersClass->userID();
$result = mysql_query($interestsquery);
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "{$row['interest']}";
}
谁能解释一下我怎么能爆炸的数据和分配它作为变量?我一直在看教程,但他们似乎都有某种界限?
我试过下面的程序,但它的行为很奇怪,打印了很多次?
以下…
$interestsquery = "SELECT * FROM user_interests WHERE user_id = " . $usersClass->userID();
$result = mysql_query($interestsquery);
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$interests[] = $row['interest'];
$interest1 = $interests[0];
$interest2 = $interests[1];
$interest3 = $interests[2];
print $interest1 . " - " . $interest2 . " - " . $interest3;
}
输出
"网球-网球-足球-网球-足球"
它们不是一个字符串,你只是把它回显出来。把它放在某个地方。这段代码将它存储在一个新数组中。它可能有用,但这取决于你想用它做什么。
$interests = array();
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$interests[] = $row['interest'];
}
在while循环的每次迭代中,您只能访问其中一个结果(首先是'soccer',然后是'tennis',然后是'football')。在第二个代码块中,您试图以某种方式访问while循环中的所有三个代码块。
相反,在while循环中,将单个结果压入数组:
$interests = array();
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$interests[] = $row['interest'];
//First 'soccer' will be pushed into $interests, then 'tennis', then 'football'.
}
现在您已经拥有了数组中的所有值,您可以单独访问每个值。这是在while循环之外完成的:
echo $interests[0] . ' - ' . $interests[1] . ' - ' . $interests[2];
这将打印"soccer - tennis - football"。
或者,就像有些人说的,您可以循环遍历$interests数组并回显每个值,或者对它们做任何您想做的事情。
将它们放入数组中,然后按您的意愿处理。
$interests = array();
while (...)
{
$interests[] = $row['interest'];
}
从php中提取方法http://php.net/manual/en/function.extract.php
$interestsquery = "SELECT * FROM user_interests WHERE user_id = " . $usersClass->userID();
$result = mysql_query($interestsquery);
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
extract($row);
echo $interest;
}
使用下面的代码片段在数组
中存储值$interestsquery = "SELECT * FROM user_interests WHERE user_id = " . $usersClass->userID();
$result = mysql_query($interestsquery);
$result = array();
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$result[] = $row['interest']
}
print_r($result);
考虑到您的澄清(使用MySQL, interest
是唯一的列,以及示例输出),我建议使用GROUP_CONCAT()
。这把它全部放在MySQL端,并允许您从$result
中提取单行。
尝试以下示例查询:
$query = "SELECT GROUP_CONCAT(interest SEPARATOR ' - ') FROM user_interests
WHERE user_id = " . $usersClass->userID() . "
GROUP BY user_id";