[PHP/MYSQL] Mengen van output verschillende SQL query's

Pagina: 1
Acties:

Onderwerpen


  • Gerwin
  • Registratie: Juli 2001
  • Laatst online: 08-06 20:10

Gerwin

Ik ben er klaar voor!

Topicstarter
Ik ben hier al een tijd naar op zoek, maar ik weet eigenlijk ook niet precies op welke woorden ik moet zoeken en of het inderdaag mogelijk is. Of het dan met een simpel dingetje gedaan kan worden en dat ik te moeilijk zit te denken of dat je hiervoor een heel complex script voor moet schrijven.

Situatie:
- Ik heb een MySQL database met verschillende tabellen;
- Ik selecteer in de database uit verschillende tablellen of zelfde tabellen
verschillende dingen
- Nu wil ik:
1) de output van de twee selecties met elkaar vermengen tot een random volgorde, maar later mag een record bij een volgend bezoek niet normaals verschijnen
2) de output van de twee selecties georderd met elkaar vermengen dus zegge elke 5e record moet uit tabel 2 komen en de rest uit tabel 1.

Is dit mogelijk of krijg ik dan allemaal verschillende en ingewikkelde code?
Kan iemand me op weg helpen, of een term geven waarop ik verder kan zoeken?

Heb bij Google al op verschillende termen gezocht als "Mysql output random" en "merge mysql output" maar echt dingen die ik zoek staat er niet tussen. Ook hier op GOT kan ik niet vinden wat ik zoek, lijkt wel of niemand dit heeft gedaan of gewild. Of ik heb de verschillende zoekwoorden.

Station van Gerwin Prins op Apple Music


Verwijderd

Geval 1 -> extra veld aanmaken met een random getal, dan hier de eerste x van pakken, en daarbij in weer een extra veld markeren dat je ze al gehad hebt, dit geheel middels een update.
Geval 2 -> stukje code schrijven die een hulptabel aanmaakt en deze bewerkingen hierop uitvoert.

  • slm
  • Registratie: Januari 2003
  • Laatst online: 12-11-2023

slm

Ik denk dat je eerst zou moeten overwegen om de door jou genoemde "verschillende" of "zelfde" tabellen niet gewoon permanent samengevoegd kunnen worden.

Als je dat echt niet wilt, kan je gebruik maken van order by rand() om random te sorteren. Ik zou koppeltabellen aanmaken voor het eenmalig tonen
2. werkt volgens mij niet. Moet je voor gaan proggen en dat wil je niet. Zorg gewoon voor die order by rand().

To study and not think is a waste. To think and not study is dangerous.


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 18-09 16:51
Waar wil je dit voor gaan gebruiken? Waarom heb je meerdere queries nodig? Kun je niet gewoon joinen? Anders kun je ook eens naar de mogelijkheden van union kijken in de mysql documentatie Met deze informatie is het een beetje lastig om je te helpen.

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

offtopic:
Ik zou zweren dat ik hier een reactie had staan, heeft 1 van de mods die verwijderd ofzo?

  • Gerwin
  • Registratie: Juli 2001
  • Laatst online: 08-06 20:10

Gerwin

Ik ben er klaar voor!

Topicstarter
Een extra veld heb ik aan zitten denken, dan kan ik voorkomen dat een record niet twee keer geselecteerd word, echter dat lost het probleem dan niet op hoe hij die dingen orderd toch?

De verschillende tabbelen zouden in principe bij elkaar in één tabel kunnen, maar ook dat lost het probleem niet op. Je blijft dan twee verschillende selectie's houden.

Ik wil dit gebruiken voor een lijst met gegevens, maar om de zoveel tijd moet er een record uit die andere database tussenkomen, soms wil ik dat random en een andere keer moet dit met een standaard waarde.

Station van Gerwin Prins op Apple Music


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 18-09 16:51
Gerwin schreef op 11 september 2003 @ 22:16:
De verschillende tabbelen zouden in principe bij elkaar in één tabel kunnen, maar ook dat lost het probleem niet op. Je blijft dan twee verschillende selectie's houden.
Zorg er eerst eens voor dat je er 100% zeker van bent dat je datamodel klopt. Laat hier anders het datamodel gewoon zien, dan hoor je vanzelf wel wat de mening er over is ;)
Ik wil dit gebruiken voor een lijst met gegevens, maar om de zoveel tijd moet er een record uit die andere database tussenkomen, soms wil ik dat random en een andere keer moet dit met een standaard waarde.
Je hebt het nu over een andere database, dat wil zeggen dat je met meerdere connecties moet gaan werken en dat je dus niet alles in 1 query kunt ophalen. Je zult dit dus aan PHP zijde op moeten lossen. Je kunt ieder query at random sorteren. Dan kun je in PHP bepalen om de hoeveel recors in dataset 1 je een record wilt van dataset 2. Dat kan gewoon in PHP, eventueel met de rand() functie.

  • Gerwin
  • Registratie: Juli 2001
  • Laatst online: 08-06 20:10

Gerwin

Ik ben er klaar voor!

Topicstarter
Ik heb twee tabellen beide hebben overeenkomende velden:

id, inhoud, plaatje, url, gelist, datum
id, inhoud, plaatje, url, gelist, datum

Ik selecteer nu alles uit tabel 1 en order die op ID, maar nu wil ik om de zoveel tijd een record uit tabel 2 in de records van tabel 1 ingevoegd hebben. Maakt het uit wat voor cellen in in een tabel heb dan? Mijn vraag is hoe ik een willekeurige record om de zoveel tijd in de list van een andere select kan verdelen...

Een query kan ik random sorteren dat weet ik, als ik er twee heb kan ik dat ook: gewoon twee query's uitvoeren, echter dan blijf ik twee aparte selects hebben. En ik kan wel een while loop maken zodat ik die lijst onder elkaar krijg, echter als ik in die while opnieuw een while opneem dan krijg in in die while weer een while en opnieuw een while toch?

Station van Gerwin Prins op Apple Music


  • slm
  • Registratie: Januari 2003
  • Laatst online: 12-11-2023

slm

(edit: zag eerst iets over het hoofd in deze topic)

Je blijft die verschillende queries waarschijnlijk wel houden als je een database elk op een verschillende server hebt draaien

Als het een niet al te groot aantal records is wat je opvraagt, kan je werken met bv Arrays en die vervolgens sorteren en weergeven.

[ Voor 228% gewijzigd door slm op 11-09-2003 23:13 ]

To study and not think is a waste. To think and not study is dangerous.


Acties:
  • 0 Henk 'm!

  • Gerwin
  • Registratie: Juli 2001
  • Laatst online: 08-06 20:10

Gerwin

Ik ben er klaar voor!

Topicstarter
Dat met Array's lijkt me wel iets, maar die dingen hoef ik niet te sorteren ik wil een random meng hebben van de twee selectie's. Hoe kan ik dat het beste aanpakken of hoe moet ik beginnen?

Station van Gerwin Prins op Apple Music


Acties:
  • 0 Henk 'm!

  • maartenvdv737
  • Registratie: Augustus 2000
  • Laatst online: 05:31
Als die 2 tabellen dezelfde velden hebben en de reden dat je 2 tabellen hebt is dat je er verschillende "soorten" data in wil opslaan, dan kan je overwegen om het in 1 tabel te stoppen en met een extra veld aan te geven bij welke "groep" de row hoort.

Of je maakt een relatie tabel.

Het scheelt je iig veel slome queries.

En waarom selecteer je niet gewoon uit 2 tabellen?
"select * from tabel1,tabel2"

[ Voor 15% gewijzigd door maartenvdv737 op 12-09-2003 22:24 ]

Ik blijf er iig vrij nuchter onder....

Pagina: 1