我有一个函数应该返回一组基于用户ID的链接。该函数暂时执行的是它只返回一个链接而不是基于用户ID的一组链接。该函数如下所示:
function retrieve_image_link($user_id)
{
$query = mysql_query("SELECT `image_link` FROM `imgit_images` WHERE user_id = '" . intval($user_id) . "'");
while ($row = mysql_fetch_assoc($query))
{
$link = $row['image_link'] . '<br />';
}
mysql_free_result($query);
return $link;
}
所以这是应该为我提供多个链接的代码,而不仅仅是一个。查询返回字符串而不是数组的问题在哪里?
请帮忙!
答案 0 :(得分:4)
您需要将链接应用于$array[] = "link";
function retrieve_image_link($user_id)
{
$query = mysql_query("SELECT `image_link` FROM `imgit_images` WHERE user_id = '" . intval($user_id) . "'");
while ($row = mysql_fetch_assoc($query))
{
//add bracktes to $link to return an array
$link[] = $row['image_link'] . '<br />';
}
mysql_free_result($query);
return $link;
}
或使用.=
opperator,如果您想要一个大字符串中的所有链接
function retrieve_image_link($user_id)
{
$query = mysql_query("SELECT `image_link` FROM `imgit_images` WHERE user_id = '" . intval($user_id) . "'");
while ($row = mysql_fetch_assoc($query))
{
//add . to = to append string to $link
$link .= $row['image_link'] . '<br />';
}
mysql_free_result($query);
return $link;
}
答案 1 :(得分:1)
问题似乎在这里
$link = $row['image_link'] . '<br />';
在循环结束时,$ link应该具有最后一个值而不是所有值。您必须附加每个链接或创建一个数组来推送每个链接。
答案 2 :(得分:0)
$link = $row['image_link'] . '<br />';
你正在覆盖循环中$ link的值。添加[]
以使其成为数组:
function retrieve_image_link($user_id)
{
$query = mysql_query("SELECT `image_link` FROM `imgit_images` WHERE user_id = '" . intval($user_id) . "'");
$link = array( );
while ($row = mysql_fetch_assoc($query))
{
$link[] = $row['image_link'] . '<br />';
}
mysql_free_result($query);
return $link;
}
答案 3 :(得分:0)
使用。=
function retrieve_image_link($user_id)
{
$query = mysql_query("SELECT `image_link` FROM `imgit_images` WHERE user_id = '" . intval($user_id) . "'");
while ($row = mysql_fetch_assoc($query))
{
$link .= $row['image_link'] . '<br />';
}
mysql_free_result($query);
return $link;
}