Sæt flere tables sammen og sorter dem

Tags:    php

<< < 12 > >>
Hey kloge mennesker.

Jeg har et lille problem, som jeg ved/(håber) i kan hjælpe mig med.

Jeg har på en af mine hjemmesider, tænkt mig at lave en slags "senest indsendt" væg.

Problemet er bare at jeg vil hente det ned fra flere forskellige tables, som dog alle sammen har en ens værdi, nemlig 'timestamp'.

Hvordan kan jeg hente de forskellige tables ned - sortere dem efter deres timestamp - kende forskel på om det er den ene type, eller en anden type, og så 'spytte' dem ud på siden. (i lidt forskellige formater, alt efter om det fx er en artikel eller et billede).


Håber jeg har forklaret mig ordentligt, ellers må i lige sige til ;)



Indlæg senest redigeret d. 10.07.2010 17:08 af Bruger #12993
12 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Jeg ville lade mysql sortere hver select:

Fold kodeboks ind/udKode 


$result burde indeholde det du ønsker, koden er baseret på at du bruger PHP's timestamp (unix) og ikke MySQL timestamp.



Jeg ville nok i det tilfælde sortere dataene i koden efter udtrækket er foretaget. Smid dem ind i et array og sorter efter timestamps. Du kan nok finde noget kode hvis du googler sorting tree :)



Nååh ja, ved ikke om jeg behøver sige det, men bruger en mySQL database.



Det kommer an på hvordan din tabel struktur ser ud. Umiddelbart vil jeg tro du skal ud i noget UNION, men jeg vil gerne se din struktur så er det lidt nemmere at hjælpe ;).



Har en tabel der hedder 'historier'.
Den indeholder: id, kategori, overskrift, tekst, beskrivelse, forfatter, timestamp

Og så har jeg også en der hedder 'artikler':
aid, kategori, overskrift, tekst, beskrivelse, forfatter, facebookid, timestamp

Og 'shout':
sid, tekst, facebookid, timestamp


Der er selvfølgelig lidt flere ting i hver, men det er de der værdier, jeg skal bruge :)



Indlæg senest redigeret d. 10.07.2010 20:17 af Bruger #12993
Så vil jeg nok sige du skal ud i noget UNION. En simpel måde at gøre det på er:

Fold kodeboks ind/udSQL kode 


Jeg mener det skal kunne gøre det. Du skal bare sætte dine egne SELECTs ind.



Det giver mig følgende fejl:
#1222 - The used SELECT statements have a different number of columns



Ok..... Det betyder der skal være det samme antal af koloner i de tabeller du laver en UNION imellem. Det havde jeg lige glemt at MySQL ikke bryder sig om. Desuden kan jeg se de skal have de samme datatyper.



Indlæg senest redigeret d. 10.07.2010 21:50 af Bruger #6559




Indlæg senest redigeret d. 11.07.2010 13:29 af Bruger #6528
Der må være noget fejl i koden. Fandt selv en "if{", men der må være noget mere, siden bliver slet ikke vist :)



<< < 12 > >>
t