Avatar billede Slettet bruger
22. september 2004 - 08:28 Der er 19 kommentarer og
1 løsning

Vis fra to tabeller

Hej.

Jeg har en php side der udskriver en adresseliste. Men da det ene felt er et tal vil jeg gerne have den laver det tal om til en tekst. De ligger i to tabeller, men hvordan fletter man sådan noget sammen ? De er begge gemt som varchar() i MySQL.

Jeg har en tabel der hedder adrliste, og i den er der et felt der hedder Kategori.

I en anden tabel der hedder katkoder, har jeg så to felter. Det ene hedder kode og det andet hedder tekst.

I min SELECT vil jeg gerne have når den skal udskrive en post, at den så tager Kategori og sammenligner med kode, og derefter udskriver tekst istedet for Kategori.

Jeg mener man kan gøre det direkte i SELECT linien, men jeg kan ikke finde ud af det, og jeg er heller ikke sikker på det, så derfor må jeg jo spørge.

På forhånd tak.
Avatar billede hmortensen Nybegynder
22. september 2004 - 08:35 #1
SELECT adrliste.*, tekst FROM adrliste, katkoder WHERE adrliste.kategori = katkoder.kode
Avatar billede Slettet bruger
22. september 2004 - 08:40 #2
Den kom så til at se sådan ud:

$query_rsFindSkole = "SELECT adrliste.*, tekst FROM adrliste, katkoder WHERE adrliste.kategori = katkoder.kode";

og den skriver stadig Kategori indholdet, altså tallet.
Avatar billede hmortensen Nybegynder
22. september 2004 - 08:43 #3
Du skal ikke vælge at udskrive tallet, men tekst istedet, og en lille rettelse:

SELECT adrliste.*, katkoder.tekst FROM adrliste, katkoder WHERE adrliste.kategori = katkoder.kode
Avatar billede Slettet bruger
22. september 2004 - 08:45 #4
TAK, det var lige det.

Lægger du lige et svar.
Avatar billede hmortensen Nybegynder
22. september 2004 - 08:46 #5
Det var så lidt
Avatar billede coderdk Praktikant
22. september 2004 - 08:47 #6
Eller den pæne måde:

  SELECT
    a.*
    ,k.tekst
  FROM
    adrliste a
  INNER JOIN katkoder k ON
    a.kategori = k.kode

Og så ellers hvad hindu_skp siger :)
Avatar billede hmortensen Nybegynder
22. september 2004 - 08:48 #7
coderdk, om man bruger inner join eller sammenligner på where kriterier, har intet at side i denne sammenhæng, og begge udtræk vil koste det samme
Avatar billede Slettet bruger
22. september 2004 - 08:48 #8
coderdk - den er da ikke for almindelige dødelige den der :-)
Avatar billede coderdk Praktikant
22. september 2004 - 08:55 #9
hindu_skp, Korrekt, ændrer dog ikke på at "inner join"-syntaksen er den pæneste ;)

oz1cbk, Når man først vænner sig til den, er den lækker og meget nemmere at læse hvis man f.eks. joiner over flere tabeller ;)
Avatar billede hmortensen Nybegynder
22. september 2004 - 08:56 #10
Smagssag :)

Jeg bruger aldrig inner join når det kun er to tabeller, men hvis der er flere, er den rar
Avatar billede Slettet bruger
22. september 2004 - 09:03 #11
Jeg lavede lige et rent gæt på en anden side, og lavede dette, og det 'ser ud' til at virke som det skal. Er den rigtig skrevet, eller er det noget klams :-)

$query_rsSoegning = "SELECT adrliste.*, katkoder.tekst FROM adrliste, katkoder WHERE adrliste.Kategori = katkoder.kode AND (skolenr LIKE '%$soeg%' OR skolenavn LIKE '%$soeg%' OR skoletlf LIKE '%$soeg%') ORDER BY skolenavn ASC";
Avatar billede hmortensen Nybegynder
22. september 2004 - 09:04 #12
Det ser meget rigtig ud
Avatar billede coderdk Praktikant
22. september 2004 - 09:04 #13
Ser fint ud, dog behøver du ikke ASC, da det er default... - Husk at lave mysql_escape_string på din $soeg hvis du ikke har magic quotes slået til.
Avatar billede Slettet bruger
22. september 2004 - 09:14 #14
Jeg ved ikke lige hvad du mener med: mysql_escape_string på din $soeg ?

Den starter på en .htm side hvor man skriver søgeordet, og sendes så til en php side der viser resultatet. Det har jeg ikke set nogen problemer med. Er det for at få den til at glemme søgeordet.
Avatar billede coderdk Praktikant
22. september 2004 - 09:21 #15
Hvis du nu søger efter: hejsa'
Altså med en apostrof til sidst, fejler den så, eller søger den bare efter et? Hvis den fejler skal du køre $soeg igennem mysql_escape_string
Avatar billede Slettet bruger
22. september 2004 - 09:24 #16
Så finder den bare ingenting :-) Så det skal jeg nok ikke også til at rode med. Tak fordi du gør opmærksom på det. Det kunne jo gå hen og blive et problem. Jeg tænkte slet ikke på at nogen kunne finde på dete ;-)
Avatar billede hmortensen Nybegynder
22. september 2004 - 09:26 #17
I nyere version er magic qoutes slået til, så det er sjældent et problem
Avatar billede Slettet bruger
22. september 2004 - 14:01 #18
Nu har jeg siddet og leget lidt med det. Det viser sig at ved søgning kan den f. eks. vise 5 rigtige og så kommer 1 forkert og så kommer rigtige igen. Kan det have noget med det mysql_escape_string at gøre ?
Avatar billede coderdk Praktikant
22. september 2004 - 16:16 #19
Nej, den må finde det rigtige - Hvis du havde brug for mysql_escape_string ville du opdage det - der ville komme meddelelser om syntaksfejl i SQL ;)
Avatar billede Slettet bruger
22. september 2004 - 16:18 #20
Ok, tak for det. Så fatter jeg ikke denlaver fejl.Der kommer ingen fejlmeddelse.
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