爆炸数组并定义变量

时间:2011-07-06 20:35:00

标签: php

我有以下内容返回

“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;

} 

打印

“网球 - 网球 - 足球 - 网球 - 球员 - 足球”

6 个答案:

答案 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";