Avatar billede mc.lucifer Praktikant
25. april 2005 - 19:55 Der er 8 kommentarer og
1 løsning

Find 10 dage gamle poster og slet dem

Jeg har et lille problem som jeg håber der er en venlig sjæl der vil hjælpe mig med.

Jeg har 2 tabeller i en database, Jeg skal ved load af en side have den til at løbe alle recordne gennem, finde dem der ud fra serverens ur er over 10 dage gamle Dvs 11 og dem skal den slette, samtidig med at den skal hoppe over i en anden tabel og og lave en update på en bestemt record ud fra hvilken record den har slettet i den første tabel.

Da jeg lige nu er lost håber jeg der er en der gider hjælpe mig med at finde den hurtigste måde at gøre dette på.

Jeg har tabellen Bookinger, den har feltet Datoopret hvor i der står hvornår recorden er oprettet " YYYY-MM-DD " her skal PHP finde ud af om der er records der er ældre end 10 dage "Læs skal slettes hvis de er 11 dage gamle og der over" samtidig med skal den ud fra feltet Hus se om det drejer sig om Hus 1 "Tabel Booking" eller Hus 2 "Tabel Booking2" og gå over i den respektive tabel og ændre status på den record der har samme Uge nr "tabel Uge" som der står i Bookinger´s Uge.

Håber det giver mening, Toppoint

MC
Avatar billede busschou Praktikant
25. april 2005 - 20:23 #1
Så er du nød til først at lave en select på alle dem som er over 10 dage gamle
Dernæst løber du det fundet record array igennem
For hver post opretter du en ny i den ene tabel og sletter derefter den gamle
Avatar billede busschou Praktikant
25. april 2005 - 20:32 #2
Først skal du finde dem der er mere end ti dage gamle
Det burde kunne gøres ved følgende afhængig af din mysql version
-----
$sql = "Select * From Bookinger Where Datoopret < Adddate(Curdate(),-11)";
$result = mysql_query($sql) or die(mysql_error());
-----
Avatar billede busschou Praktikant
25. april 2005 - 20:36 #3
Dernæst looper du dem igennem (jeg er ikke helt 100 på det du siger med uger...er der en tabel mere?
-----
while ($row = mysql_fetch_array($result)){
  if($row['Hus'] == 1){
    $update = "Update Booking Set status = nystatus Where uge = $row['uge']";
  }else{
    $update = "Update Booking2 Set status = nystatus Where uge = $row['uge']";
  }
  mysql_query($update) or die(mysql_error());
  $slet = "Delete From Bookinger Where id = $row['id']";
  mysql_query($delete) or die(mysql_error());
}
Avatar billede sungdk Nybegynder
25. april 2005 - 20:37 #4
Fortsat:

while($row = mysql_fetch_array($result)) {
//mysql_query UPDATE HER!

mysql_query("DELETE FROM tabel WHERE id = '$row[id]'");

}
Avatar billede sungdk Nybegynder
25. april 2005 - 20:37 #5
Ahh... du laver den i etaper buss :)
Avatar billede busschou Praktikant
25. april 2005 - 20:38 #6
hehe skulle lige tænke en ekstra gang siden han skriver "tabel uge" ...om det er en tabel...eller om han mener det er et felt
Uanset hvad må det være i den dur det skal laves
Avatar billede mc.lucifer Praktikant
23. maj 2005 - 19:14 #7
Jeg undskylder at jeg ikke har svaret endnu, Jeg værdsætter jeres hjælp utroligt meget der er bare lige kommet noget ind der kræver større opmærksomhed, Jeg har ikke glem jer og tager fat når jeg igen for plads, Håber ikke at jeg støder nogen.

MC
Avatar billede busschou Praktikant
23. maj 2005 - 19:43 #8
det går jo nok :o)
Avatar billede mc.lucifer Praktikant
07. september 2006 - 08:26 #9
Da min samvittighed siger mig jeg bør få lukket en del af mine åbne spørgsmål, hvorfor jeg nu går igang med at lukke. Jeg vælger at tage point selv med mindre der er besvarelser på mine spørgsmål. Mener du at du burde have hafe point, så skriv og så for du det, men dette er udelukkende for få lukket mine åbne spørgsmål.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester