【问题标题】:The word Array is displayed instead of the database entry显示单词 Array 而不是数据库条目
【发布时间】:2012-10-19 17:50:19
【问题描述】:

我正在尝试从我的数据库中打印选定的产品名称,但是我看到的只是单词“Array”而不是产品名称。它显示的次数与它找到的产品数量一样多,并且该数字是正确的,但它只显示“数组”...

这是我的代码:

public function lookup($product)
    {

        $camera = $this->db->query("SELECT name FROM products WHERE type = 'Camera' ");

        $laptop = $this->db->query("SELECT name FROM products WHERE type = 'Laptop' ");


        $data = array();

        switch($product)
        {
            case 'camera' : 
            foreach ($camera->result() as $row)
            {
                $entry = array();
                $entry['name'] = $row->name;
                $data[] = $entry;
            }
            return $data; break;

            case 'laptop' :
            foreach ($laptop->result() as $row)
            {
                $entry = array();
                $entry['name'] = $row->name;
                $data[] = $entry;
            }
            return $data; break;

        }   
    }

【问题讨论】:

  • 在屏幕上打印产品的代码在哪里?
  • 没有人正确回答您之前的任何问题?
  • 让我们看看输出这个结果的代码。奇怪的是你正在做类似 ,它返回一个数组。您需要设置密钥...
  • 不是答案,因为我们看不到您的输出方式。但看起来你正在做额外的工作。在查询之前检查 $product 是相机还是笔记本电脑,然后在查询中使用 $product 或新变量。然后您只需要运行 1 个查询,就可以消除该开关。
  • 现在已修复。谢谢大家的帮助!

标签: php sql database codeigniter


【解决方案1】:

你想echo 一个数组吗?您可能应该尝试var_dump($array_var); 或使用诸如foreach 之类的循环来遍历数组值并打印/回显每个值。

【讨论】:

  • 这是正确的。我喜欢使用 print_r 函数。在我的一些代码中,我创建了一个 print_ar() 函数,它在 print_r 调用之前和之后回显“
    ”和“
    ”。这使得浏览器显示打印的数组对于我的目的来说已经足够好了。
猜你喜欢
  • 2015-09-06
  • 1970-01-01
  • 2011-09-17
  • 2021-10-18
  • 1970-01-01
  • 2019-06-02
  • 2017-04-29
  • 1970-01-01
  • 2019-06-22
相关资源
最近更新 更多