So I was echoing out my $query and my $result variables and I coded my site in order to check my SQL statements and I came across a value of ‘Resource id #5’ in my echo values where I instead expected to see a customerID.
The answer? Well, you can’t echo the result of a sql query, i.e you can’t do this:
$query = "SELECT CustomerID FROM CUSTOMER WHERE emailAddress = '".$emailAddress."'"; $result=mysql_query($query); echo $result;
instead you need to identify which item in $result you want to echo (and for which row). In my instance the item was CustomerID and I thought it would be good to iterate through all the rows in the resultset, so I echoed it like this:
$query = "SELECT CustomerID FROM CUSTOMER WHERE emailAddress = '".$emailAddress."'"; $result=mysql_query($query); //Get the number of rows in the recordset $num=mysql_numrows($result); //Set the initial value of the counter to zero (the first position in the resultset) $i=0; //iterate through the resulset and echo the value of the CustomerID for each record while ($i < $num) { echo mysql_result($result,$i,"CustomerID"); $i++; }
It’s an easy mistake to make, but a bit thoughtless when you think about it..after all, how can we expect to echo a recordset? I don’t think I’ll be making that mistake again!!