Avatar billede bilbo2 Nybegynder
30. december 2002 - 12:55 Der er 11 kommentarer

Fra en tabel over i en anden

Hej

Jeg er ved at lave et CMS system, med programmerede artikler. Tabellerne ser således ud:

#FRA/SOURCE TABLE
CREATE TABLE gn_dyn_prog_articles(
number int(8) unsigned DEFAULT '0' NOT NULL auto_increment,
fake_number varchar(255) NOT NULL,
fake_number2 varchar(255) NOT NULL,
author varchar(255) NOT NULL,
author2 varchar(255) NOT NULL,
email varchar(255) NOT NULL,
topic int(8) NOT NULL,
title varchar(255) NOT NULL,
intro longtext NOT NULL,
body longtext NOT NULL,
sourcetext varchar(255) NOT NULL,
sourceurl varchar(255) NOT NULL,
readmore varchar(255) NOT NULL,
showonfront varchar(1) NOT NULL,
date varchar(50) NOT NULL,
reads int(8) NOT NULL,
comments int(8) NOT NULL,
PRIMARY KEY(number)
);

#TIL/DESTINATION TABLE
CREATE TABLE gn_dyn_articles(
number int(8) unsigned DEFAULT '0' NOT NULL auto_increment,
fake_number varchar(255) NOT NULL,
fake_number2 varchar(255) NOT NULL,
author varchar(255) NOT NULL,
author2 varchar(255) NOT NULL,
email varchar(255) NOT NULL,
topic int(8) NOT NULL,
title varchar(255) NOT NULL,
intro longtext NOT NULL,
body longtext NOT NULL,
sourcetext varchar(255) NOT NULL,
sourceurl varchar(255) NOT NULL,
readmore varchar(255) NOT NULL,
showonfront varchar(1) NOT NULL,
date varchar(50) NOT NULL,
reads int(8) NOT NULL,
comments int(8) NOT NULL,
PRIMARY KEY(number)
);

Jeg vil have at f.eks. hvis $fake_number i "fra tabel" er mindre end dagens dato skal posten fra "fra tabel" flyttes over i "til tabel".

Er der nogen der kan hjælpe mig med dette? Scriptet skal køre igennem samtlige poster i "fra tabel" og kun flytte dem der har en mindre dato end dagens dato. Der er 200 point at hente for et accepteret svar.

mvh
bilbo2
Avatar billede mufoxe Nybegynder
30. december 2002 - 13:34 #1
Hvad indeholder fake_number i "fra tabel"? Er det en dato?
Avatar billede bilbo2 Nybegynder
30. december 2002 - 13:37 #2
Jeppers
Avatar billede mufoxe Nybegynder
30. december 2002 - 13:39 #3
Jeg vil gøre det hele i SQL på følgende måde (syntaxen er fra MSSQL Server, kan nemt tilpasses den database, som du anvender). Smid følgende i en stored procedure:

INSERT INTO gn_dyn_articles (number, fake_number, fake_number2, author, author2, email, title, intro, body, sourcetext, sourceurl, readmore, showonfront, date, reads, comments) SELECT number, fake_number, fake_number2, author, author2, email, title, intro, body, sourcetext, sourceurl, readmore, showonfront, date, reads, comments FROM gn_dyn_prog_articles WHERE fake_number < GETDATE()

DELETE FROM gn_dyn_prog_articles WHERE fake_number < GETDATE()
Avatar billede mufoxe Nybegynder
30. december 2002 - 13:42 #4
Princippet er følgende:
1) Udvælg artikler fra SOURCE, som har en dato tidligere end dagsdato og indsæt dem i DESTINATION.
2) Slet artikler fra SOURCE, som har en dato tidligere end dagsdato.
Avatar billede bilbo2 Nybegynder
30. december 2002 - 13:45 #5
Kan du give mig et php eksempel script, jeg bruger MySQL.
Avatar billede mufoxe Nybegynder
30. december 2002 - 13:47 #6
Du skal bare fyre de to SQL sætninger af lige efter hinanden. Det behøver ikke nødvendigvis at ligge i en stored procedure. Lav en PHP funktion, hvori du kalder mysql_query først med den ene sætning og derefter med den anden.
Avatar billede bilbo2 Nybegynder
30. december 2002 - 13:49 #7
Kan du hjælpe mig med det?
Avatar billede svoeber Nybegynder
30. december 2002 - 14:34 #8
Hvis du har installeret phpMyAdmin, kan du også bare fyre mufoxe's sætninger af i SQL-feltet i phpMyAdmin
Avatar billede bilbo2 Nybegynder
30. december 2002 - 14:40 #9
ja, men det skal gøres når en person besøger siden.
Avatar billede svoeber Nybegynder
30. december 2002 - 17:03 #10
Hvilket dato-format er fake_number? Er det timestamp? Eller ÅÅÅÅ-MM-DD?
Avatar billede bilbo2 Nybegynder
30. december 2002 - 18:51 #11
den er sat med date("Ymd H:i:s");
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