Jump to content


Photo

Using list() with variables


  • Please log in to reply
1 reply to this topic

#1 apollo

apollo
  • New Members
  • Pip
  • Newbie
  • 2 posts

Posted 08 October 2006 - 06:37 AM

The results are set by a variable (i.e $type = “pvt” , “com”, or “org”).
I am coding results from mysql to the LIST() function, I can not figure out how to construct a variable name within the list function. I was able to work it out in the mysql query…

This works
$sql = "SELECT 
	".$type."_auto,
	name_auto,	
        ...	
        FROM ".$db_prefix."rates ...

However, in the list function it does not work as,

list(
	'$'.$type.'_auto'.,
	$name_auto
    ...
	) = mysql_fetch_array($rs);

The variable name needs to be… $com_auto  in this case, but it could be $pvt_auto or $org_auto depending on the value of $type.

I have been stuck for awhile on this, maybe it can not be done this way using LIST to set the results from the database to be available as variables in the standard manner?

Thanks for any help here!
Apollo


#2 kenrbnsn

kenrbnsn
  • Staff Alumni
  • Advanced Member
  • 8,235 posts
  • LocationHillsborough, NJ, USA

Posted 08 October 2006 - 01:55 PM

Part of your problem could be that you're using the mysql_fetch_array() function which returns two entries per field. You may want to try using the mysql_fetch_assoc() function instead.  Another part is how you're creating the variables, try this instead:
<?php
list(${$type.'_auto'},$name_auto) = mysql_fetch_assoc($rs);
?>

But I believe a better solution would be something like this:
<?php
$q = 'select ' . $type . '_auto, name_auto from ' . $db_prefix . 'rates';
$rs = mysql_query($q) or die('Problem with the query:$q<br>" . mysql_error());
$row = mysql_fetch_assoc($rs);
extract($row); // creates variables from the associative entries in the array
?>

Ken




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users