从数据库中抓取数组,然后使用每个数组值获取信息

时间:2014-02-04 19:44:00

标签: php mysql arrays loops foreach

完全难以理解,基本上我从用户表中获取逗号分隔列表,将其用作数组,然后使用数组中的每个值从不同的表中获取数据然后输出。

$award_array = array($user_class->awards);
foreach($award_array as $award) {
    $getaward = mysql_query("SELECT `name`, `text`, `image` FROM `awards_av` WHERE `id` = '".$award."'");
    $awardstuff = mysql_fetch_array($getaward);
    echo "<img src='".$awardstuff['image']."' alt='".$awardstuff['name']."' title='".$awardstuff['text']."' />";
}

这只是给出数组中的第一个数字($ user_class-&gt;奖励,在这种情况下是1,2,3,4,5,6)

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

我想我看到了问题。您不能简单地使用逗号分隔列表的字符串,并将其放在array()标记内,并期望它自动将其转换为数组。您必须使用explode()函数来执行此操作。

您正在尝试做什么:

<?php
$string = 'a,b,c,d,e';
$myarray = array($string);
foreach ($myarray as $k => $v) {
    print $v .'<br />';
}
?>

除此之外不起作用。您需要将逗号分隔的值列表(这是一个字符串)转换为数组,但不要使用array()来执行此操作。你使用PHP的内置函数explode() - &gt;这样http://php.net/explode ......

<?php
$string = 'a,b,c,d,e';
$myarray = explode(',' $string);
foreach ($myarray as $k => $v) {
    print $v .'<br />';
}
?>

我认为这是你遇到的问题