UPDATE multiple rows with loop

I have the table 'addr_im' that was altered by Adding a datetime  field called 'date_create'.
There are 1753 rows
I need to populate the 'date_create 'with a random Date in the last month

USING THIS FRO THE RANDOM DATE
$ranDate = date('Y/m/d h:m:s', mktime(rand(0,24),rand(0,60),rand(0,60),10,rand(1,30),2006));

I need to loop through each row and update 'date_create' with $ranDate

LVL 1
ScottshaneAsked:
Who is Participating?
 
VoteyDiscipleCommented:
Why not do it directly in the database with a similar structure.  Off the top of my head, I'm thinking...

UPDATE addr_im
SET date_create = DATE_SUB(NOW(), INTERVAL FLOOR(RAND() * 60 * 60 * 24 * 30) SECOND);

Presto, done in a single query.

That's a little rough in that it assumes a 30 day month, but you can fix that easily.
0
 
Raynard7Commented:
You should be able to do this with one statement

ie

Update addr_im set date_create = FROM_UNIXTIME(UNIX_TIMESTAMP(date_add('2006-10-01', interval round(rand()*30) day)) + SEC_TO_TIME(rand() * 60*60*24))
0
 
VoteyDiscipleCommented:
That's it; I'm just gonna have to stop taking the time to verify my syntax or something if I'm gonna be a couple seconds too late all the time.  (-;



I did want to add: databases are really good at doing loop-like stuff natively.  Any time you're thinking of writing a loop it's worth considering an SQL approach that will do the same thing.  It's certainly not a universal truth, but it's a pretty good bet that one exists.
0
Cloud Class® Course: Microsoft Exchange Server

The MCTS: Microsoft Exchange Server 2010 certification validates your skills in supporting the maintenance and administration of the Exchange servers in an enterprise environment. Learn everything you need to know with this course.

 
Raynard7Commented:
How is my answer wrong? - it is more complete than voteys and gives you for october as you wanted.
0
 
Raynard7Commented:
?
0
 
ScottshaneAuthor Commented:
There are no comments in this thread stating that you answer's wrong.
His was the answer I chose.
and his mistake actually worked out to my advantage.

the end.
0
 
Raynard7Commented:
Well,

The policy is if an answer is correct then the first correct answer should be given the points - or they should be shared.

The fact that my answer was correct and first and you did not accept it or give points for an assist means that it is incorrect - according to EE policy.

This is why I wanted to know why it was wrong - otherwise it should have been graded accordingly.
0
 
ScottshaneAuthor Commented:
Ok, my bad I didn't read the Policy.
Is there a way to grade yo post facto?
If I can do that I will.
0
 
Raynard7Commented:
Hi, you could post a requrest in the community support forum for the question to be re opened for grading.

You do not have to if you do not want to - I just do not like putting the effort in for a correct decision and then having it disregarded for one that is near identical - this was the third time it has happened today so that is why i was a little snappy - I apologise
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.