Jump to content

naming PHP variables according to a MySQL array index value


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.

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.