Jump to content

How to update each row?


Eliasen

Recommended Posts

Hi Everyone,

 

I have this piece of code:

$getinfo = mysql_query("SELECT * FROM animals WHERE type='reptile'") or die(mysql_error());
$numRowsAge = mysql_num_rows($getinfo);
$age = mysql_fetch_assoc($getinfo);

while($age)
{
foreach(???????){
	$date1 	= $age['birthdate'];
	$date2 	= time();
	$seconds_between 	= $date2 - $date1;
	$minutes_between 	        = $seconds_between/60;
	$hours_between 		= $minutes_between/60;
	$days_between 		= $hours_between/24;

	if ($hours_between >= 15 && $age['lifecycle_stage'] == "egg"){

			$animal = array();
			$animal['lifecycle_stage'] = "Baby";
			$animal['age_minutes'] = round($minutes_between,1);
			$animal['age_hours'] = round($hours_between,1);
			$animal['age_days'] = round($days_between,1);

			$ins = sql_update('items', $animal, $age['id']);
			mysql_query($ins);
	}

	elseif ($days_between >= 7 && $age['lifecycle_stage'] == "Baby"){

			$animal = array();
			$animal['lifecycle_stage'] = "Adult";
			$animal['age_minutes'] = round($minutes_between,1);
			$animal['age_hours'] = round($hours_between,1);
			$animal['age_days'] = round($days_between,1);

			$ins = sql_update('items', $animal, $age['id']);
			mysql_query($ins);
	}

	elseif ($days_between >= $age['max_age']){
        
			$del="DELETE FROM items WHERE id='$age[id]'";
			$died = mysql_query($del);

	}
	else {	
			$animal = array();
			$animal['age_minutes'] = round($minutes_between,1);
			$animal['age_hours'] = round($hours_between,1);
			$animal['age_days'] = round($days_between,1);

			$ins = sql_update('items', $animal, $age['id']);
			mysql_query($ins);
	}
}
}

 

I want to calculate the animals age, and put it into the database (Do not mind the sql_update script, it is custom and it works).

Right now it only worked with the first row in the database, when I used:

for($count = 1; $count <= $numRowsSnakes; $count++)
{

instead of the while and foreach.

 

How do I run this for each of the animals in the database?

 

I believe the problem is at the top bit (the while and foreach), but I couldn't find a solution or a way of doing this. The foreach has just been left as ?????, as I have no idea of what to do here.

 

Anyone able to enlighten me on how to use the while/foreach to solve my problem?

 

Thanks!!

 

Link to comment
Share on other sites

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.