【问题标题】:PHP exporting values from database, comma separated, in a stringPHP从数据库中导出值,逗号分隔,在字符串中
【发布时间】:2016-02-03 14:17:12
【问题描述】:

表格如下所示:

virtuemart_customfield_id___|___virtuemart_product_id___|____custom_value___
                        1   |                   4346    |           45
                        2   |                   4346    |           46
                        3   |                   4347    |           45

此功能按原样正常工作。

function getSizes($product_id){
    global $mainframe;
    $db = &JFactory::getDBO();
    $sql = 'SELECT * FROM `#__virtuemart_product_customfields` WHERE `virtuemart_product_id` ='.$product_id.'';
    $db->setQuery($sql);
    $result=$db->loadObjectList();
    return $result;
}

这是调用函数并从数据库中获取数据的代码,并尝试用逗号分隔我需要的值。

$records = $this->getSizes($product_id);
$product_size = '';
foreach ($records as $value){
    $size = $value->custom_value;
    if ($product_size == '') {
        $product_size .= $size;
    } else {
        $product_size .= ", " .$size;
}

问题似乎出在这段代码的某个地方,但我不知道在哪里...... 任何帮助将非常感激! 提前致谢!

【问题讨论】:

  • 出了什么问题?你得到什么结果?
  • 我没有得到任何结果,这是我的问题。因为没有php经验,不知道怎么调试。具体来说,这是 Joomla 中的一个组件,当它失败时,我只是得到一个空白页。
  • 您是否通过输出并在 shell 上运行来检查您的 SQL 查询是否有效?
  • 是的,查询在 phpmyadmin 后端返回首选结果。

标签: php mysql sql xml csv


【解决方案1】:

尝试这种方式(首先分配给 $size 而不连接)

$records = $this->getSizes($product_id);
$product_size = '';
foreach ($records as $value){
   $size = $value->custom_value;
   if ($product_size == '') {
       $product_size = $size;
   } else {
       $product_size .= ", " .$size;
   }
}

【讨论】:

  • 感谢您的回答.. 刚刚找到解决方案.. if 没有关闭.. 最后一个 } 属于 else。
  • 你的版本更合乎逻辑,这就是为什么批准它作为答案!
  • 我已经用 } 更新了答案以关闭 foreach 。谢谢
猜你喜欢
  • 2016-02-08
  • 1970-01-01
  • 1970-01-01
  • 2021-05-14
  • 1970-01-01
  • 2013-06-07
  • 2015-05-31
  • 2010-10-18
  • 2012-09-15
相关资源
最近更新 更多