Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
313 views
in Technique[技术] by (71.8m points)

mysql - Mysql_fetch_array( $result, MYSQL_BOTH ) is not exact

I have a weird problem with mysql_fetch_array( $result , MYSQL_BOTH ). This is how the problem is reproduced:

  1. Do a query string that uses LEFT JOIN, GROUP BY
    select *, 
           (A1.total - A2.borrow_total) as remain_total 
      from ( select Min(sample_created_date) as created_date, 
             sample_model,
             sample_ncc, 
             count(*) as total , 
             sample_sort 
              from tb_sample 
             where 1=1 
               AND sample_kho IN ( 'hanoi','tm_hanoi' ) 
             group by sample_model, sample_sort, sample_ncc 
           ) A1 left join 
           ( select sample_model as sample_model1, 
                    count(*) as borrow_total, 
                    sample_ncc 
               from tb_sample B1 left join tb_sample_ticket B2 
                 on B1.sample_borrow_status = B2.ticket_id 
              where 1=1 
                and ticket_bo_phan_duyet = 'finish' 
                and ticket_status_duyet = '1' 
                AND sample_kho IN ( 'hanoi','tm_hanoi' ) 
              group by sample_model, sample_ncc 
            ) A2 on A1.sample_model = A2.sample_model1 
                AND A1.sample_ncc = A2.sample_ncc left join tb_product_sort A3 
                 on A1.sample_sort = A3.sort_code 
    where 1=1 
    order by created_date DESC 
    LIMIT 0, 30
  1. Implement mysql_fetch_array( $result , MYSQL_BOTH ):

    $rw  = mysql_fetch_array( $result , MYSQL_BOTH );
    
  2. Display value of $rw:

    echo  $rw['sample_cc'];
    

But there is nothing. Then I try print_r( $rw ), see below for the result:

Array
(
    [0] => 2013-06-13 04:10:39
    [created_date] => 2013-06-13 04:10:39
    [1] => 3G
    [sample_model] => 3G
    **[2] => Gmobile
    [sample_ncc] =>** 
    [3] => 1
    [total] => 1
    [4] => SIM
    [sample_sort] => SIM      
);

I see that $Rw[2] = 3G but $rw['sample_ncc'] is null.

This is a weird problem. Please help me solve it.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Try to give explicit aliases for sample_ncc columns in subqueries A1 and A2 (e.g. sample_ncc_a1 and sample_ncc_a2) or return only one that is on the left side of LEFT JOIN (meaning in A1).


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...