From:             [EMAIL PROTECTED]
Operating system: RedHat 6.1
PHP version:      4.0.4pl1
PHP Bug Type:     MySQL related
Bug description:  mysql_fetch_array() dropping non-NULL column name

mysql_fetch_array with MYSQL_BOTH or MYSQL_ASSOC is returning one of the columns in 
the query ONLY as a numeric index, but not the named index.  The column is a NOT NULL 
column, so the value is always defined.

I have a feeling the problem has something to do with the fact that the "missing" 
column is the column joining two tables.  Here's the SQL:

select distinct p.*,pt.Formula 
from Promotions p, PromoTypes pt 
where p.PromoTypeID = pt.PromoTypeID 


Here's some of the result of mysql_fetch_array:

array(31) {
  [0]=>
  string(2) "10"
  ["PromotionID"]=>
  string(2) "10"
  [1]=>
  string(20) "Free font with order"
  ["Name"]=>
  string(20) "Free font with order"
  
  ...etc...

  [7]=>
  string(2) "10"
  [8]=>
  string(4) "0.01"
  ["X"]=>
  string(4) "0.01"

  ...etc...
}


Array index 7 should be followed by the key "PromoTypeID".  The same thing happens 
using MYSQL_ASSOC (the element is missing altogther), and also if I specify 
p.PromoTypeID explicitly in the query.

The problem IS SOLVED if I alias the column name to something else using 
"p.PromoTypeID AS FakeName" , which makes me think even more that it's being confused 
by the table joining.



-- 
Edit Bug report at: http://bugs.php.net/?id=10268&edit=1



-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to