Avatar billede JJ77 Juniormester
09. februar 2006 - 13:42 Der er 3 kommentarer og
1 løsning

slet fra to tabeller

Hvordan får jeg slettet en bruger som har data i to tabeller.
Tabellerne ser ud som følger:

CREATE TABLE `users` (
  `userId` int(11) NOT NULL auto_increment,
  `userStatus` tinyint(4) NOT NULL default '0',
  `userName` char(40) NOT NULL default '0',
  `userPassword` char(48) NOT NULL default '0',
  `sidsteBesoeg` datetime default '0000-00-00 00:00:00',
  PRIMARY KEY  (`userId`),
  UNIQUE KEY `userName` (`userName`)
) TYPE=MyISAM AUTO_INCREMENT=69 ;
   

CREATE TABLE `userProfile` (
  `userId` int(11) NOT NULL default '0',
  `userFirstName` varchar(64) NOT NULL default '',
  `userEmail` varchar(64) NOT NULL default '',
  `userLastName` varchar(64) NOT NULL default '',
  `userCompany` varchar(15) NOT NULL default '',
  `userAddr1` varchar(64) NOT NULL default '',
  `userAddr2` varchar(64) NOT NULL default '',
  `userCity` varchar(64) NOT NULL default '',
  `userState` varchar(64) NOT NULL default '',
  `userCountry` varchar(64) NOT NULL default '',
  `userTel` varchar(15) NOT NULL default '',
  `userMobiTel` varchar(15) NOT NULL default '',
  `userHomeTel` varchar(15) NOT NULL default '',
  `userFax` varchar(15) NOT NULL default '',
  `userZip` varchar(10) NOT NULL default '',
  `userWeb` varchar(128) NOT NULL default '',
  `userValidationKey` varchar(32) NOT NULL default '',
  `userIP` varchar(32) NOT NULL default '',
  `userSignUp` datetime NOT NULL default '0000-00-00 00:00:00',
  `userValidated` tinyint(1) NOT NULL default '0',
  `userNewsLetter` tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (`userId`)
) TYPE=MyISAM;


Jeg har selv prøvet med følgende:
mysql_query("DELETE users, userProfile FROM users, userProfile WHERE (users.userId=userProfile.userId, users.userStatus='1') AND users.sidsteBesoeg < NOW()");

Det med "users.sidsteBesoeg < NOW() skal jeg på en eller anden måde have ændret så det kun er brugere som ikke har logget ind i 1 år som bliver slettet:)
Avatar billede coderdk Praktikant
09. februar 2006 - 14:27 #1
Prøv med

users.sidsteBesoeg < DATE_SUB(NOW(), INTERVAL 1 YEAR)
Avatar billede JJ77 Juniormester
09. februar 2006 - 16:31 #2
Ok.. men hvad med selve

mysql_query("DELETE users, userProfile FROM users, userProfile WHERE (users.userId=userProfile.userId, users.userStatus='1') AND users.sidsteBesoeg < DATE_SUB(NOW(), INTERVAL 1 YEAR)");

ER der ikke noget galt, for den vil ikke slette noget:(
Avatar billede JJ77 Juniormester
11. februar 2006 - 21:48 #3
Kunne godt bruge < DATE_SUB(NOW(), INTERVAL 1 YEAR, men sqllen skulle tilrettes før det virkede.. men smider du ikke et svar, så kan vi dele pointene.

Fik det løst med:

mysql_query("DELETE users, userProfile FROM users, userProfile WHERE users.userId = userProfile.userId AND users.userStatus='1' AND users.sidsteBesoeg < DATE_SUB(NOW(), INTERVAL 1 YEAR)");
Avatar billede coderdk Praktikant
12. februar 2006 - 17:14 #4
Ok :)
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