ID: 10268
User Update by: [EMAIL PROTECTED]
Status: Open
Bug Type: MySQL related
Operating system: RedHat 6.1
PHP Version: 4.0.4pl1
Description: mysql_fetch_array() dropping non-NULL column name


Solved.  This was happening due to a truly inspired problem with my own code...  The 
element was being unset deep in a separate function.  Sorry to bother you!

Previous Comments:
---------------------------------------------------------------------------

[2001-04-10 13:34:47] [EMAIL PROTECTED]
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.


---------------------------------------------------------------------------


Full Bug description available at: http://bugs.php.net/?id=10268


-- 
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