mysql_fetch_array and multitable queries

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
I have a query that looks at two tables and pulls all the data back:

SELECT * FROM venues, status WHERE status_id = fk_status_id

I then have a class to hold the information I want.  To initialise it I
get the data from the results set as per normal.  The issue I have is
that two fields have the field name 'name'.  In SQL terms I would refer
to them like 'tablename.columnname'.  How do I achieve this using a
mysql fetch array?

The code I am using below brings back empty/null items for the

$row = mysql_fetch_array( $rs );
$vn = new venue();
$vn->params_init( $row['venue_id'],
                  $row[''], /*HERE*/
                  $row[''], /*HERE */

In this instance I am developing the database so I can get round it by
changing the field names, but in the future I may not be able to.

If possible I want to avoid using two queries to get the information I


Rick Huby

Re: mysql_fetch_array and multitable queries

Quoted text here. Click to load it

$SQL = "SELECT tablename.columnname AS name1,tablename2.columnname AS name2  
FROM ............";

$RESULT = mysql_query($SQL);

$RECORD = mysql_fetch_array($RESULT)

$name1 = $RECORD['name1'];
$name2 = $RECORD['name2'];  

Re: mysql_fetch_array and multitable queries

select * is fairly dangerous -- only because you don't know what you
are (or aren't getting).  If you explicitly list out your columns you
can alias them and get to them that way:

SELECT v.venue_id,
FROM venues v, status s
WHERE s.status_id = v.fk_status_id

Here I called venue_name and status_name.  So in
your row, you can do $row['venue_name'] and $row['status_name'].

Re: mysql_fetch_array and multitable queries

Thank you both very much - that really helps me.



Site Timeline