Avatar billede a2p-dk Nybegynder
02. marts 2010 - 18:48 Der er 9 kommentarer og
1 løsning

Multiply table udtræk: Hvilken tabel kommer dataen fra?

Hej

Jeg er i gang med at lave en søgefunktion der søger i nogle lign. 5 tabeller samtidigt . Er der en mulighed for at finde ud af hvor dataen kommer fra.

feltet "thecode" findes i alle tabellerne. Men er der en mulighed for at finde ud af om den kommer fra tabellerne:
* sider
* nyheder
* kalender
* etc

Så jeg kan style det forskelligt mhp. hvilken tabel udtrækket kommer fra.

Min sql query kunne eksempelvis se sådan ud:


SELECT * FROM eu_undermenu, eu_nyheder WHERE LOWER(eu_undermenu.name) LIKE '%qLower%' OR LOWER(eu_undermenu.thecode) LIKE '%qLower%' OR LOWER(eu_nyheder.name) LIKE '%qLower%' OR LOWER(eu_nyheder.thecode) LIKE '%qLower%'
Avatar billede a2p-dk Nybegynder
02. marts 2010 - 18:49 #1
hovsa, poster lige queryen igen:
[pre]
SELECT * FROM eu_undermenu, eu_arrangementer, eu_nyheder WHERE
LOWER(eu_undermenu.name) LIKE '%qLower%' OR
LOWER(eu_undermenu.thecode) LIKE '%qLower%' OR
LOWER(eu_arrangementer.thecode) LIKE '%qLower%' OR
LOWER(eu_arrangementer.description) LIKE '%qLower%' OR
LOWER(eu_arrangementer.sted) LIKE '%qLower%' OR
LOWER(eu_nyheder.name) LIKE '%qLower%' OR
LOWER(eu_nyheder.thecode) LIKE '%qLower%'
[pre]
Avatar billede repox Seniormester
03. marts 2010 - 08:43 #2
Du har dine feltnavne at gå ud fra? Dog kan jeg se du har et par identisk navngivne felter - giver den SQL forespørgsel det ønskede resultat?
Hvorfor anvender du LOWER()?
Avatar billede a2p-dk Nybegynder
03. marts 2010 - 13:54 #3
LOWER(felt) matcher feltet med mit søgeord som også er lower.

Min SQL forespørgsel giver det jeg vil have.

Det problem jeg har er at jeg vil style - i css - udtrækket forskelligt alt efter om det er en nyhed, en side etc. Eller endnu mere væsenligt hvilken opbygning det skal udskrives med. Nyhederne skal vise dato men det felt kender siderne slet ikke til.

Så mit spørgsmål er vel egentlig om der er en måde jeg kan tjekke hvilken af mine tabeller udtrækket er fra og så derefter vælge hvilke parametre jeg vil give det - visuelt.
Avatar billede repox Seniormester
03. marts 2010 - 13:56 #4
Hvordan udskriver du dine søgeresultater nu?
Avatar billede a2p-dk Nybegynder
03. marts 2010 - 14:07 #5
Øh.h. Jeg har en array - der fortæller opbygningen. Denne array kører jeg så alle mine udtræk igennem, for at bygge min udskrift. Men lige nu har jeg også 3-5 sql forespørgelser. altså:

$query = mysql_query (SELECT * sider)
while (..){...}
$query = mysql_query (SELECT * nyheder)
while (..){...}
$query = mysql_query (SELECT * frister)
while (..){...}


Så her er det jo ret enkelt at vide hvor udtrækket kommer fra da der kiun er udtræk fra en database af gangen
Avatar billede repox Seniormester
03. marts 2010 - 14:10 #6
Hvad er der så i vejen med den metode? Er det for at undgå at anvende tre forespørgsler?
Fordi at anvende LIKE keywordet er sløvt i forvejen, så du vinder sikkert ikke noget ved det...
Avatar billede a2p-dk Nybegynder
03. marts 2010 - 14:21 #7
Det var egentligt lige så meget for at jeg så kunne sortere alle udtrækne efter et fælleds felt så man kan få de nyeste emner først.
Avatar billede repox Seniormester
03. marts 2010 - 14:32 #8
Det kan gøres på flere måder - men dit forslag med at samle det i en lang sætning er ikke ønskelig.
Gør hellere det at du beholder de tre forespørgsler og læg dem i et fælles array istedet for at udskrive dem med det samme.
Derefter sorterer du dit array, baseret på dine datostempler som du naturligvis tager med i dit array.
Avatar billede a2p-dk Nybegynder
03. marts 2010 - 14:40 #9
præcis. Det var også det jeg lige fik tanken på. Det bliver så mit endelige resultat. Tak for hjælpen. Vil du lægge et svar. :)
Avatar billede repox Seniormester
03. marts 2010 - 14:55 #10
Det fik du her.
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