Avatar billede _eksperten_ Nybegynder
06. marts 2004 - 20:05 Der er 12 kommentarer og
1 løsning

2 tables der deler id's

Hej !
Jeg har brug for to tables der kan deles om id's.
Så der i de to tables ikke vil være nogen rækker der har samme id. fx der oprettes en række i TABLE1 den får id=1, derefter oprettes der to rækker i TABLE2 de får henholdsvis id=2 og id=3, og så hvis der oprettes en række i TABLE1 igen vil den få id=4.
Kan det overhovedet lade sig gøre ?
Kan man så søge efter id i 2 tables ad gangen ? altså noget lign.:
select * from TABLE1 and TABLE2 where id='2'
Avatar billede arne_v Ekspert
06. marts 2004 - 20:14 #1
Har du overvejet at ligge data i en tabel og have et felt som angiver 1 eller 2 ?
Avatar billede arne_v Ekspert
06. marts 2004 - 20:15 #2
Du kan opnå dine unikke ID'er på ihvertfald 2 måder:

1)  oprette en dummy tabel med et auto increment felt, indsæt i den og
    "stjæl" den indsatte ID og brug den når du laver den rigtige INSERT

2)  lad din applikation generere unikke ID'er
Avatar billede arne_v Ekspert
06. marts 2004 - 20:16 #3
(SELECT * FROM table1 WHERE id=2)
UNION
(SELECT * FROM table2 WHERE id=2)

forudsat at du er på MySQL 4.x
Avatar billede _eksperten_ Nybegynder
06. marts 2004 - 21:58 #4
Jeg tror jeg prøver måde #2. Ved du hvordan denne funktion kan laves i php ?
Avatar billede arne_v Ekspert
06. marts 2004 - 22:26 #5
Der må være andre som har haft det behov.

Google fandt:

http://www.zend.com/manual/function.uniqid.php
http://lab.artlung.com/php/make-unique-id/
http://www.phpfreaks.com/quickcode/Unique_ID/245.php

Jeg kan ikke vurdere hvor gode/dårlige de er.
Avatar billede _eksperten_ Nybegynder
07. marts 2004 - 18:23 #6
Jeg havde i forvejen fundet den med, md5(mktime()) ...
Men giv mig et svar og du får dine points.
Avatar billede arne_v Ekspert
07. marts 2004 - 18:32 #7
ok
Avatar billede _eksperten_ Nybegynder
08. marts 2004 - 14:37 #8
Lad mig lige høre dig først, hvis man bruger
mysql_query((SELECT * FROM table1 WHERE id=2)UNION(SELECT * FROM table2 WHERE id=2))
og gammer resultatet. Hvordan finder man så ud af hvilken tabel resultatet kom fra ?
Avatar billede arne_v Ekspert
08. marts 2004 - 14:52 #9
Det kan man ikke.

Men !

(SELECT tabel1.*,1 FROM table1 WHERE id=2)
UNION
(SELECT tabel2.*,2 FROM table2 WHERE id=2)

bør gøre det muligt !
Avatar billede _eksperten_ Nybegynder
08. marts 2004 - 16:19 #10
kan du sige mig hvordan, for jeg har ingen anelse om hvordan man kan se det.
Hved du egentlig om man kan lave "schedualed work" med php ? Så man siger at klokken 3 skal den gøre: lalala !?
Avatar billede arne_v Ekspert
08. marts 2004 - 16:29 #11
Hvis tabellerne indeholder 4 felter, så vil det femte felt i result set jo indeholde
1 eller 2 indikator.
Avatar billede arne_v Ekspert
08. marts 2004 - 16:30 #12
Umiddelbart vil jeg tro at man satte operativ systemets scheduler til at
køre et PHP script på et bestemt tidspunkt.

Men det er lidt udenfor mit ekspertise område.
Avatar billede _eksperten_ Nybegynder
08. marts 2004 - 16:40 #13
Tak for hjælpen, arne...
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
Computerworld tilbyder specialiserede kurser i database-management

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