เพราะว่า mysql_fetch_array ให้ค่าคืนมา สามารถเข้าถึงได้สองรูปแบบ คือแบบ index number กับ index associate
มันแล้วแต่จะเลือกครับ แต่ default มันเป็นแบบนั้น
ผมก็ใช้ mysql_fetch_assoc() ขี้เกียจระบุ type
Code
Returns an array of strings that corresponds to the fetched row, or FALSE if there are no more rows. The type of returned array depends on how result_type is defined. By using MYSQL_BOTH (default), you'll get an array with both associative and number indices. Using MYSQL_ASSOC, you only get associative indices (as mysql_fetch_assoc() works), using MYSQL_NUM, you only get number indices (as mysql_fetch_row() works).
If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must use the numeric index of the column or make an alias for the column. For aliased columns, you cannot access the contents with the original column name.