Avatar billede kongfjong Nybegynder
21. august 2006 - 11:54 Der er 7 kommentarer og
1 løsning

Find tabel-navn på sidste forespørgsel

Hej, hvis jeg vil finde tabelnavnet på det sidste returnerede resultat af en forespørgsel, findes der så en funktion til det i PHP? Synes at have kigget igennem php manualen uden at finde en funktion der kunne?
Avatar billede Slettet bruger
21. august 2006 - 12:07 #1
Det kan ikke lade sig gøre direkte. Det letteste er at sætte en variabel samtidig med at du laver en query, så den altid indeholder den oplysning.

Hvis det er for at finde ud af hvilken af flere queries i en UNION, der gav et resultat, kan man bruge noget i denne stil:

SELECT 'tabel1' AS tabelnavn, felt2, felt3 FROM tabel1
UNION
SELECT 'tabel2' AS tabelnavn, felt2, felt3 FROM tabel2
Avatar billede kongfjong Nybegynder
21. august 2006 - 12:16 #2
He pudsigt, det er netop en UNION jeg skal bruge den i:) Forespørgslen er som følger:

(SELECT * FROM behandlinger_info) UNION ALL (SELECT * FROM spec_behandlinger_info) ORDER BY create_date DESC LIMIT 1

Hvordan ville du så løse den siger du?:)
Avatar billede kongfjong Nybegynder
21. august 2006 - 12:23 #3
Ah nu fattede jeg den sidste:D

Så kan jeg fange resultatet med mysql_fetch_array f.eks. i $res og så trække tabelnavnet ud som $res['tabelnavn']?
Avatar billede Slettet bruger
21. august 2006 - 12:37 #4
(SELECT 'behandlinger_info' AS tabelnavn, * FROM behandlinger_info) UNION ALL (SELECT 'spec_behandlinger_info' AS tabelnavn, * FROM spec_behandlinger_info) ORDER BY create_date DESC LIMIT 1

Og ja, så kommer navnet i resultat-arrayet nøjagtig som ethvert andet felt i databasen.
Avatar billede kongfjong Nybegynder
21. august 2006 - 12:48 #5
nicest:D tak:D
Avatar billede Slettet bruger
21. august 2006 - 13:25 #6
Det var forresten ikke så pudsigt endda, at jeg tænkte på union, for det er den eneste situation, hvor man i selve PHP-delen ikke kan vide, hvor resultatet kommer fra. (Ikke helt korrekt, for med stored procedures og lignende avancerede emner kan man også lave sjove ting, men hvis man er kommet så langt, vil man normalt også kende til den løsning, jeg kom med, og den kan også bruges der.)
Avatar billede kongfjong Nybegynder
21. august 2006 - 15:22 #7
Okay, nu er jeg stødt på udtrykket Stored Procedures et par gange, kan du forklare hvad det går ud på?
Avatar billede Slettet bruger
21. august 2006 - 21:53 #8
Det er en slags programstump skrevet i SQL, som man kan kalde i stedet for at køre en normal query. Den kan så lave flere forskellige ting efter hinanden eventuelt med betingelser og løkker.

Stored Procedures er i MySQL først understøttet i de nyere versioner, og det kan derfor ikke benyttes på de fleste webhoteller endnu.

Fordelene ved at bruge dem er, at
- databaseserveren normalt vil compile dem, når de bliver lavet, og de kører derfor en smule hurtigere en en normal SQL-streng.
- man kan samle logikken i databaseserveren, så man ikke behøver skrive samme kode til flere forskellige brugergrænseflader.
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