Jump to content

naming PHP variables according to a MySQL array index value


baran

Recommended Posts

I have this code to get the fields from a table for as long as there are rows in the table:

[php:1:5f84876c54]<?php

$SQL = \" SELECT * FROM $tablename \";

 

# execute SQL statement

$retid = mysql_query($SQL, $cid);

 

# check for errors

if (!$retid) { echo(\"ERROR: \" . mysql_error() . \"n$SQLn\"); }

else {

 

 

# fill variables

while ($row = mysql_fetch_array($retid)) {

$catname = $row[\"catname\"];

$dogname = $row[\"dogname\"];

$pigname = $row[\"pigname\"];

$horsename = $row[\"horsename\"];

 

?>[/php:1:5f84876c54]

 

What I want to do is create and fill up different PHP variables for each row of my table. so I want to have a variable called $catname1 for the cat\'s name in the first row, but also to have a variable called $catname2 for the cat\'s name in the second row, and $catname3, $catname4 etc etc until there\'s no more rows.

 

Any help greatly appreciated, I have vague ideas about using mysql_fetch_row() to get the row number and append this onto the variable name but am not really sure how.

Why dont you use an array in this case?

 

while ($row = mysql_fetch_array($retid)) { 

       $catname[] = $row["catname"]; 

       $dogname[] = $row["dogname"]; 

       $pigname[] = $row["pigname"]; 

       $horsename[] = $row["horsename"]; 

}

 

This will strore the values in an array

 

To loop thru you can use this

 

for($i=0;$i<=count($catname);$i++)

{

echo $catname[$i];

}

 

Hope this helps!

actually I wrote my last post before I\'d had a chance to test it. It doesn\'t work! :oops:

 

I\'ve had a good read of

http://www.php.net/manual/en/language.types.array.php

but am a bit unsure of how to declare an array properly using the square brackets and filling the array with data from MySQL using the mysql_fetch_array function.

 

does anyone have any ideas whats wrong with the last bit of code posted. I\'m sure my table is fine.

actually this works:

[php:1:747c443ec9]<?php

while ($row = mysql_fetch_array($retid)) {

$catname[] = $row[\"catname\"];

$dogname[] = $row[\"dogname\"];

$pigname[] = $row[\"pigname\"];

$horsename[] = $row[\"horsename\"];

}

 

echo $catname[1];

echo $catname[2];

 

?>[/php:1:747c443ec9]

 

and thats really all I need. Thanks.

shivabharat,

 

didn\'t echo anything. I placed the for loop outside of the while loop. from what little experience of PHP I have your code looked fairly foolproof so maybe something was wrong my end. anyway thanks for your help.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.