【问题标题】:Grabbing array from database, then getting information using each array value从数据库中获取数组,然后使用每个数组值获取信息
【发布时间】:2014-02-04 19:44:00
【问题描述】:

完全被这个难住了,基本上我从一个用户表中得到一个逗号分隔的列表,将它用作一个数组,然后使用数组中的每个值从不同的表中获取数据然后输出。

$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->awards 是 1,2,3,4,5,6)

非常感谢任何帮助!

【问题讨论】:

  • 请将var_dump($award_array); 的输出附加到您的问题中。
  • 不确定我是否遵循,如果$user_class-&gt;awards 有逗号分隔值$award_array 看起来像这样:array(1) { [0]=&gt; string(11) "1,2,3,4,5,6" }

标签: php mysql arrays loops foreach


【解决方案1】:

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

你想做什么:

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

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

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

我认为这是你遇到的问题

【讨论】:

  • 这已经完成了!你是一个绅士和一个学者
  • 谢谢!先生,请将此答案标记为正确且快乐的编码!
猜你喜欢
  • 2019-04-09
  • 2012-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-30
相关资源
最近更新 更多