Avatar billede carlo1 Nybegynder
30. maj 2005 - 16:01 Der er 15 kommentarer og
1 løsning

hente data fra to tabeller

Hej

Et enkelt spørgsmål til noget php og mySQL
Jeg skal bruge noget data fra to forskellige tabeller, (KALENDER: dato, event)
(TEKSTER: tekst1, tekst2)

Jeg skal såmænd bare have skrevet de fire felter ud fra de to tabeller, således:
$dato, $event, $tekst1, $tekst2

men jeg mangler bare SELECT sætningen. Nok noget med en join?
Avatar billede nielle Nybegynder
30. maj 2005 - 16:08 #1
Hvis du vil kunne joine, skal der være et fælles felt at joine på. Har du ikke en mapping mellem en event i den ene tabel og den tilhørende tekst i den anden?
Avatar billede knudx Nybegynder
30. maj 2005 - 17:47 #2
--dvs at der fks i TEKSTER skal være et EVENT felt også, så du kan se hviklken event teksten beskriver
Avatar billede mrgumble Nybegynder
30. maj 2005 - 17:48 #3
Hvis du har Microsoft Access liggende, så opret de samme tabeller i en .mdb-fil. Herefter går du ind til "Forespørgelser" og gør brug af de klik-og-træk funktioner, som Access benytter sig af.
Så tjekker du SQL-sætningen fra forespørgelsen og prøver den af i f.eks. phpMyAdmin. Virker det? Så puds den fint af, og smæk den ind i dit php-script.
Avatar billede sungdk Nybegynder
30. maj 2005 - 22:28 #4
(SELECT id,stamp,'news',headline FROM news ORDER BY stamp DESC LIMIT 5)
UNION
(SELECT id,stamp,'review',CONCAT(artist,title) FROM review ORDER BY stamp DESC LIMIT 5)
ORDER BY stamp DESC

Hentet fra: http://eksperten.dk/spm/508946
Avatar billede carlo1 Nybegynder
31. maj 2005 - 15:18 #5
mrgumble, fint lille trick. Smid et svar
Avatar billede carlo1 Nybegynder
02. juni 2005 - 09:11 #6
Nå man skal åbenbart bare sige

select tabelnavn.attribut1, tabelnavn.attribut2, andentabel.attribut1, andentabel.attribut2 from tabelnavn, andentabel

I dette tilfælde:
SELECT kalender.dato, kalender.event, tekster.tekst1, tekster.tekst2 from kalender, tekster

Men mrgumble det var dig der fik mig sporet, så der ligger points og venter.
Avatar billede nielle Nybegynder
02. juni 2005 - 17:41 #7
carlo1> Det der virker altså kun hvis du kun har en række i hver tabel.
Avatar billede carlo1 Nybegynder
03. juni 2005 - 08:29 #8
Ja det har du da ret i faktisk. Hmm, jeg tror jeg laver to queries lige efter hinanden.
Avatar billede sungdk Nybegynder
03. juni 2005 - 23:12 #9
Bare mig eller er svaret ikke blevet det jeg kom med?
Avatar billede nielle Nybegynder
03. juni 2005 - 23:39 #10
carlo1> Er det ikke sådan at dine to tabeller KALENDER og TEKSTER høre sammen, forstået sådan at der kan være en eller flere rækker i TEKSTER som høre sammen med en given række i KALENDER. Som jeg læser problemstillingen mellem linjerne så er det noget med at du har en kalender med nogle datoer i, og at du for hver dato kan have 0, 1 eller flere tekster hørende til denne dato? I så fald må der være et felt til i TEKSTER som peger over på KALENDER og som fortæller hvilken dato den høre til.
Avatar billede nielle Nybegynder
03. juni 2005 - 23:41 #11
sungdk> Hvorfor vil du have en UNION? Der er intet som tyder på at de to tabeller er tilstrækkelig ens til at det giver nogen mening.
Avatar billede sungdk Nybegynder
04. juni 2005 - 10:07 #12
nielle > Ok sådan forstod jeg det bare... :D
Avatar billede carlo1 Nybegynder
06. juni 2005 - 09:35 #13
Undskyld hvis jeg ikke har været klar nok i min formulering.
Nej de hører ikke sammen som sådan. Jeg vil egentligt bare gemme en tekst i db, for at gøre det lettere for en bruger at ændre i teksten uden at skulle have fingrene ned i koden. (Jeg sidder og laver et mini-mini-CMS system).

Så det jeg var ude efter var såmænd bare at kunne skrive et par felter lige efter hinanden fra forskellige tabeller uden noget form for sammenhæng. Men jeg har nok forvirret jer, da jeg selv foreslog en join. Tut mir leid.
Avatar billede nielle Nybegynder
07. juni 2005 - 19:12 #14
Siden at de to tabeller slet ikke høre sammen på nogen måde, så laver du da bare to SELECT sætninger og looper over hver af dem for sig; Først den ene og så den anden.
Avatar billede carlo1 Nybegynder
08. juni 2005 - 15:11 #15
joh det var også det jeg endte med at gøre. Troede måske bare man kunne hente fra to forskellige tabeller på een gang, men som du sagde virker det kun med een række
Avatar billede carlo1 Nybegynder
14. juni 2005 - 09:42 #16
Håber ikke jeg gør nogen ked af det hvis jeg beholder points
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