Avatar billede asgrone Nybegynder
09. april 2006 - 18:26 Der er 7 kommentarer og
1 løsning

samle output fra 3 mysql forespørgsler

Hej folkens
På min side har jeg tre mysql forespørgsler kaldet "images", "motion", og "sounds". Outputtet på de tre forespørgsler, er stort set det samme. Et array som ser nogenlunde sådan her ud:
id - dato - url - type - titel - beskrivelse - visninger - uploader

Mit spørgsmål er nu:
Kan det lade sig gøre at smelte disse tre array's sammen til et nyt array, som er sorteret efter dato'erne (unix timestamps) i rækkerne i de tre arrays. Det ville gøre mit liv noget lettere.
Avatar billede coderdk Praktikant
09. april 2006 - 19:01 #1
Det kan samles i én query

(SELECT id, dato, url, type, titel, beskrivelse, visninger, uploader FROM images)
UNION
(SELECT id, dato, url, type, titel, beskrivelse, visninger, uploader FROM motion)
UNION
(SELECT id, dato, url, type, titel, beskrivelse, visninger, uploader FROM sounds)
ORDER BY dato DESC

Spørgsmålet er, om det ikke er bedre at lave databasen om, og konsolidere tabellerne i én tabel, med en type f.eks.
Avatar billede asgrone Nybegynder
09. april 2006 - 19:11 #2
tak for svar, det virker til at være temmeligt ligetil.. og jo, det ville være meget smartere at samlere tingene i en tabel, men ligenu er det ikke til at overskue for mig, så jeg bruge dovne løsninger indtil det bliver for meget.
Avatar billede coderdk Praktikant
09. april 2006 - 19:16 #3
Du får lige et svar, i tilfælde af, at du kunne bruge det ;)
Avatar billede asgrone Nybegynder
09. april 2006 - 19:23 #4
jeg er lidt i tvivl om hvordan jeg skal skrive det. Ligenu ser min kode således ud:
mysql_select_db($database_opkobling, $opkobling);
$query_files = "(SELECT id, dato, url, type, overskrift, beskrivelse, visninger, uploader FROM images) UNION (SELECT id, dato, url, type, titel, beskrivelse, visninger, uploader FROM motion) UNION (SELECT id, dato, url, type, titel, beskrivelse, visninger, uploader FROM sounds) ORDER BY dato DESCORDER BY dato DESC";
$row_files = mysql_query($query_files, $opkobling) or die(mysql_error());
$row_files = mysql_fetch_assoc($row_files);

men den giver fejl.. er det noget du kan hjælpe mig med
Avatar billede coderdk Praktikant
09. april 2006 - 19:33 #5
ORDER BY dato DESCORDER BY dato DESC

skal blot være:

ORDER BY dato DESC
Avatar billede asgrone Nybegynder
09. april 2006 - 19:41 #6
ja det er rigtigt. Jeg har lige fundet ud at at "dato" hedder "date" i en af tabellerne. Kan jeg gøre noget for at komme rundt om det, eller er det bedst at omdøbe den?
Avatar billede coderdk Praktikant
09. april 2006 - 19:47 #7
SELECT id, date AS dato, url, type, titel, beskrivelse, visninger, uploader FROM tabellen
Avatar billede coderdk Praktikant
09. april 2006 - 19:47 #8
(Altså lave et alias med AS)
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