English 中文(简体)
从控制器到模型——密码用户
原标题:Pass an array from controller to model - codeigniter

为什么这赢得了工作? I 用户已经安装,希望其他有相同标签的用户获得。

主计长:

$this->load->model( tag_model );
            $data[ usr_tags ] = $this->tag_model->get_home_tags($user_id);
            $tags = $this->tag_model->get_home_tags($user_id);
            $tag_array = $tags;
            $data[ tag_users ] = $this->tag_model->get_tag_users($tag_array);

模式:

function get_tag_users($tag_array)
    {
            //$tag = array( item1 , item2 , item3 );
            $tag = $tag_array;
            $query_str =  SELECT DISTINCT user_id FROM tags WHERE tag IN (" . implode( "," , $tag) . ") ;

            $query = $this->db->query($query_str);

            if($query->num_rows() > 0) {
                    foreach($query->result_array() as $tag_users) {
                            $data[] = $tag_users;
                    }
                    return $data;
            }else{
                    return false;
            }
    }

错误:

A PHP Error was encountered
Severity: Notice
Message: Array to string conversion
Filename: models/tag_model.php
Line Number: 20
最佳回答

页: 1 looks:

array(4){
    [0]=> array(1){
        ["tag"]=> string(3) "lol"
    }
    [1]=> array(1){
        ["tag"]=> string(4) "here"
    }
    [2]=> array(1){
        ["tag"]=> string(3) "php"
    }
    [3]=> array(1){
        ["tag"]=> string(5) "mysql"
    }
}

这实际上是一系列阵列,你可以使用implode。 “Array to string”换算之所以发生,是因为阵列的每个组成部分都是一个阵列,而PHP需要改换成一个扼子,以“imp”。

您可以使用<代码>array_map,从各个阵列中获取每个标签。

function get_tag_users($tag_array)
{
    $tag = array_map(function($a){
        return $a[ tag ];
    }, $tag_array);
    $query_str =  SELECT DISTINCT user_id FROM tags WHERE tag IN (" . implode( "," , $tag) . ") ;

如果你没有PHP5.3,你可以这样做:

function get_tag_users($tag_array)
{
    $tag = array_map(create_function( $a ,  return $a["tag"]; ), $tag_array);
    $query_str =  SELECT DISTINCT user_id FROM tags WHERE tag IN (" . implode( "," , $tag) . ") ;
问题回答

<><><><><>><>>>><>>>>>>

$this->load->model( tag_model );
$data[ usr_tags ] = $this->tag_model->get_home_tags($user_id);
$data[ tag_users ] = $this->tag_model->get_tag_users($data[ usr_tags ]);

<><><>>>>

function get_tag_users($tag_array)
{
    $tags=array();
    foreach($tag_array as $tag)
    {
        $tags[]= $tag[ tag ];
    }
    $query_str =  SELECT DISTINCT user_id FROM tags WHERE tag IN ( .implode(",", $tags). ) ;
    $query = $this->db->query($query_str);
    if($query->num_rows() > 0)
    {
        return $query->results();
    }
    else
    {
        return false;
    }
}

http://www.hchr.org。 页: 1





相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

php return a specific row from query

Is it possible in php to return a specific row of data from a mysql query? None of the fetch statements that I ve found return a 2 dimensional array to access specific rows. I want to be able to ...

Character Encodings in PHP and MySQL

Our website was developed with a meta tag set to... <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> This works fine for M-dashes and special quotes, etc. However, I ...

Pagination Strategies for Complex (slow) Datasets

What are some of the strategies being used for pagination of data sets that involve complex queries? count(*) takes ~1.5 sec so we don t want to hit the DB for every page view. Currently there are ~...

Averaging a total in mySQL

My table looks like person_id | car_id | miles ------------------------------ 1 | 1 | 100 1 | 2 | 200 2 | 3 | 1000 2 | 4 | 500 I need to ...

热门标签