Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 801
  • Last Modified:

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

0
Scottshane
Asked:
Scottshane
  • 5
  • 2
  • 2
2 Solutions
 
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:
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
 
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
Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

 
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

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 5
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now