Selecteer 5 laatste van tabellen

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Ik weet niet hoe ik het precies kan uitleggen, maar stel dat ik 5 tabellen heb met hierin data. Bij die data zit een datum, en dan wil ik dus de 5 laatste results gemeten over alle tabellen hebben. Dus niet 5 per tabel ofzo.


    Als het goed is moet dit alleen met MySQL kunnen, anders kost het denk ik teveel loadtime.


    Hopelijk is het nu duidelijker.

  • Met PostGreSQL zou je met een functie een result set kunnen returnen. Met MySQL kan dit nog niet voor zover ik weet.
    Misschien dat je genoeg hebt aan een UNION query. Maar met de info die je geeft kan ik op het moment niet veel beter doen.
    We hebben bijvoorbeeld geen idee van de structuur van de 9 tabellen, of wat je nou precies verwacht als result set.


    De extra load die een beetje PHP verwerking met zich mee brengt is meer, maar te veel? Dan moet die pagina wel erg druk bezocht zijn en heb je blijkbaar strenge non-functional requirements opgesteld.

  • De tabellen zijn beiden ongeveer hetzelfde. Ze hebben allemaal een kolom id, user en price. Ik wil dus een soort query als deze:

    PHP
    SELECT id, user, price FROM tabel ORDER BY id DESC LIMIT 5


    Alleen dan ook nog voor tabel2, tabel3, tabel4 etc. en dat ik 5 results in totaal krijg, gemeten over al deze 4 tabellen.

  • Laat eerst een query zoeken naar hoeveel resultaten er in je tabel staan (in dit geval dus 9).
    Vervolgens vul je in hoeveel resultaten je wilt.
    Daarna wordt je volgende query:


    DESC LIMIT 4,5


    Waarin 4 de uitkomst is van resultaat (9) - limiet (5).
    Waarin 5 het limiet is.

  • Ow, had het te snel gelezen :P
    Dacht dat je wat anders bedoelde.


    Edit:
    Ik heb effe wat simpels in mekaar geflatst.
    In dit script maak ik gebruik van de tabellen table1, table2 enz.
    Het script pakt uiteindelijk de 5 meest recente resultaten uit 9 tabellen gebaseerd op tijd (functie time()).


  • Jup ik heb op regel 9 wat informatie toegevoegd achter het streepje (-).
    Deze informatie vraagt hij op regel 19 weer op.
    De uitkomst van $result2[1] op regel 21 is dus wat $info->result op regel 9 bevat.


    Ik heb dit script net als het voorgaande script getest en het werkt.
    Als je liever het streepje wilt veranderen in iets anders zul je het zelf opnieuw moeten testen.
    Bijvoorbeeld wanneer in je resultaat zo'n zelfde streepje voorkomt.


Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!