sorteren en weergeven van objecten
Ik ben nu aan het stoeien met php en objecten en ik kom er niet uit met het volgende:
Ik wil een lijst weergave genereren waarbij ik uit twee tabellen mijn data uit haal.
Het is niet 1-op-1 zelfde tabel en data structuur.
Maar er zit wel veld:titel,tekst in tabel 1.
tabel 2:naam,bericht, url in tabel 1.
Dus voor beide tabellen wil ik informatie weergeven in 1 lijst.
Van tabel 1 dien ik zelf de bestemmingsurl te genereren. Daar heb ik een vaste functie voor.
Ik kan nu wel 2 keer een aparte functie maken die mij de data terug geeft, maar ik weet niet hoe ik deze situatie moet oplossen:
stel mijn uiteindelijke output:
(tabel 1)
"A", bericht, url = berekenen
"B", bericht, url = berekenen
"C", bericht, url = berekenen
(tabel 2)
"A", bericht, url
"B", bericht, url
"C", bericht, url
-> Nu zie je hier dat de naam per blok een eigen volgorde heeft.
1. hoe kan ik hier een mooie sortering maken(A-Z)?
2. het moet 1 lijst weergave worden zonder dat de gebruiker indruk heeft dat het eigenlijk verschillende blokken zijn.
Zoals ik nu de data ophaal uit de tabellen zijn dat arrays.
Ik dacht wel om deze om een of andere manier te mergen, alleen is de data niet gelijk. Dan loop ik vast in mijn template als ik over mijn uiteindelijke resultaat doorheen loop (foreach).
Heeft iemand een idee hoe dit mooi op te lossen is?
alvast bedankt,
ric
ORDER BY `bericht` ASC in je query verwerken
Plus van de ene tabel moet ik de url genereren. Dus er zit wel wat bewerking in.
tip?
Gewijzigd op 15/09/2011 17:02:43 door Ger van Steenderen
Ja, als ik fresh zou beginnen, dan inderdaad. Maar er zit nu al data in.
Dus dat gaat ook niet op.
Ik moet echt iets verzinnen dat ik vanuit de twee resultsets een manier kan vinden om die weer te 'joinen'.
Voor de hand liggend is:
1. result set 1 ophalen
2. lopen over eerste tabel een url berekene
3. resultset 2 ophalen
4. aparte array maken met kolommen: 'titel', 'bericht', 'url'
5. van de beide resultsets, de array weer aanvullen
6. nieuwe array doorgeven aan mijn view
maar mijn vraag is dus, kan het anders of beter? Zonder echt tabel wijzigingen?
SELECT * FROM table1 WHERE field1=(SELECT field FROM table2 WHERE field3='something')