我有以下内容返回
“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']}";
}
有人可以解释一下我如何分解数据并将其作为变量分配?我一直在寻找教程,但他们似乎都有某种分类?
我试过以下oly它的表演非常奇怪并多次打印出来?
以下......
$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;
}
打印
“网球 - 网球 - 足球 - 网球 - 球员 - 足球”
答案 0 :(得分:2)
它们不是一个单独的字符串,你只是回应它。把它存放在某个地方。此代码将其存储在新数组中。它可能很有用,但它实际上取决于你想用它做什么。
$interests = array();
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$interests[] = $row['interest'];
}
答案 1 :(得分:1)
在while循环的每次迭代中,你只能访问其中一个结果(首先是'足球',然后是'网球',然后是'足球')。在你的第二个代码块中,你试图以某种方式访问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];
这将打印“足球 - 网球 - 足球”。
或者,就像有人说的那样,你可以循环遍历$ interests数组并回显每个值,或者做任何你喜欢的事情。
答案 2 :(得分:0)
将它们放在一个数组中,然后按照你的意愿去做。
$interests = array();
while (...)
{
$interests[] = $row['interest'];
}
答案 3 :(得分:0)
使用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;
}
答案 4 :(得分:0)
使用以下代码段在数组中存储值
$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);
答案 5 :(得分:0)
鉴于您的澄清(使用MySQL,interest
是唯一的列和示例输出)我建议使用GROUP_CONCAT()
。这将所有内容放在MySQL端,并允许您从$result
。
尝试以下示例查询:
$query = "SELECT GROUP_CONCAT(interest SEPARATOR ' - ') FROM user_interests
WHERE user_id = " . $usersClass->userID() . "
GROUP BY user_id";