[php/mysql] form submit na mysql rand

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Saven
  • Registratie: December 2006
  • Laatst online: 04-07 11:33

Saven

Administrator

Topicstarter
Hey Tweakers,
Ik zit een beetje te dubben om het volgende: ik heb een mysql query die 6 random resultaten uit de database haalt
MySQL:
1
2
3
4
            ORDER BY
                RAND()
            LIMIT
                0,6


Deze resultaten weergeef ik op een pagina. Op diezelfde pagina staat een formulier waar mensen wat gegevens in kunnen vullen. Het probleem is echter dat zodra ze dat formulier submitten ik niet meer dezelfde 6 resultaten krijg die ik op de pagina zag, maar dat er weer random 6 nieuwe resultaten uit de database.

Komt blijkbaar omdat die hele pagina dus vernieuwd wordt na een form submit. Is hier een makkelijke oplossing voor? Alvast bedankt :)

Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 11-07 17:00

Matis

Rubber Rocket

Misschien kun je de 6 items in een hidden input field stoppen om ze bij de submit te (her)gebruiken.
Je zou het submitten eventueel ook asynchroon kunnen doen, maar dan wordt de asynchrone pagina alsnog opnieuw geopend.

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • Saven
  • Registratie: December 2006
  • Laatst online: 04-07 11:33

Saven

Administrator

Topicstarter
Matis schreef op zaterdag 29 december 2012 @ 21:50:
Misschien kun je de 6 items in een hidden input field stoppen om ze bij de submit te (her)gebruiken.
Je zou het submitten eventueel ook asynchroon kunnen doen, maar dan wordt de asynchrone pagina alsnog opnieuw geopend.
Asynchroon had ik inderdaad ook al afgeschoten als idee :P Hidden inputfield is misschien wat lastig, omdat ik een vrij grote array terug krijg:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Array
(
    [0] => Array
        (
            [bid] => 10
            [bedrijfsnaam] => wr23rwef 5
            [omschrijving] => wewrfsdf 5
            [plaats] => dfgdfg
        )

    [1] => Array
        (
            [bid] => 12
            [bedrijfsnaam] => lslslslsldd 7
            [omschrijving] => iieieieie 7
            [plaats] => 55
        )

    [2] => Array
        (
            [bid] => 9
            [bedrijfsnaam] => Lalalal 4
            [omschrijving] => ohohhohohoho 4
            [plaats] => sdfsdf
        )

    [3] => Array
        (
            [bid] => 3
            [bedrijfsnaam] => TEST
            [omschrijving] => alsdldlfdf
            [plaats] => difsdfksjdf
        )

    [4] => Array
        (
            [bid] => 8
            [bedrijfsnaam] => Bedrijfjee 3
            [omschrijving] => sdlfsdfsdf
            [plaats] => 
        )

    [5] => Array
        (
            [bid] => 7
            [bedrijfsnaam] => Bedrijfje 2
            [omschrijving] => Omschrijving sfs 2
            [plaats] => 
        )

)


enig idee hoe ik dat netjes kan doen mbv input fields? Hij hoeft niet altijd 6 resultaten terug te geven. 6 is het maximaal maar kan dus ook minder zijn

Acties:
  • 0 Henk 'm!

  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
Saven schreef op zaterdag 29 december 2012 @ 21:53:
[...]

Asynchroon had ik inderdaad ook al afgeschoten als idee :P Hidden inputfield is misschien wat lastig, omdat ik een vrij grote array terug krijg:
sla de eerste keer je resultaat op in bijv. de sessie, en kijk voordat je de pagina laadt eerst of er iets in de sessie staat: zo ja, display dat, zo nee, voor je query uit...

[ Voor 59% gewijzigd door P.O. Box op 29-12-2012 22:49 ]


Acties:
  • 0 Henk 'm!

  • Saven
  • Registratie: December 2006
  • Laatst online: 04-07 11:33

Saven

Administrator

Topicstarter
P.O. Box schreef op zaterdag 29 december 2012 @ 22:49:
[...]


sla de eerste keer je resultaat op in bijv. de sessie, en kijk voordat je de pagina laadt eerst of er iets in de sessie staat: zo ja, display dat, zo nee, voor je query uit...
Heb ik ook overwogen, alleen is het zo dat de gebruiker evt. ook bedrijven in andere regio's kan zoeken. dat gaat dan niet meer als er al wat in die sessie staat. Dan moet ik gaan vergelijken of de laatste regio overeenkomt met de huidige regio. beetje omslachtig naar mijn idee :P

Acties:
  • 0 Henk 'm!

  • Xudonax
  • Registratie: November 2010
  • Laatst online: 08-07 22:05
Heb je geen unieke ID's in de database welke je comma seperated oid in een hidden field kunt zetten? Dan kun je kijken of dat veld bestaat in je GET of POST en aan de hand daarvan een WHERE of een RAND doen :)

Acties:
  • 0 Henk 'm!

  • Patriot
  • Registratie: December 2004
  • Laatst online: 11-07 20:37

Patriot

Fulltime #whatpulsert

Je bid lijkt me "bedrijfs id"? Dan zet je die erin. Desnoods zet je in een sessie welke 6 ids je op een bepaalde pagina zet. Bij een post request kun je dan die sessie uitlezen. Moet je dat natuurlijk wel doen voordat je opnieuw de sessie zet :P

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Je moet het inderdaad gewoon meeposten in het formulier. Beschouw de items die je toont als onderdeel van de submission. Het onderdeel dat het formulier afhandelt hoeft helemaal niet te weten dat het random items zijn, laat staan dat het zich met sessies bezig moet gaan houden. Sessies moet je echt zien als een last resort, hoe minder je ermee te maken hebt hoe beter en eenvoudiger.

En doe het niet comma separated maar gewoon een array van waardes:
HTML:
1
2
<input type="hidden" name="ids[]" value="1">
<input type="hidden" name="ids[]" value="2">
komt binnen als array:
PHP:
1
array('ids' => array(1, 2));

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • Saven
  • Registratie: December 2006
  • Laatst online: 04-07 11:33

Saven

Administrator

Topicstarter
drm schreef op zondag 30 december 2012 @ 14:25:
Je moet het inderdaad gewoon meeposten in het formulier. Beschouw de items die je toont als onderdeel van de submission. Het onderdeel dat het formulier afhandelt hoeft helemaal niet te weten dat het random items zijn, laat staan dat het zich met sessies bezig moet gaan houden. Sessies moet je echt zien als een last resort, hoe minder je ermee te maken hebt hoe beter en eenvoudiger.

En doe het niet comma separated maar gewoon een array van waardes:
HTML:
1
2
<input type="hidden" name="ids[]" value="1">
<input type="hidden" name="ids[]" value="2">
komt binnen als array:
PHP:
1
array('ids' => array(1, 2));
Thanks dat klinkt idd als een betere oplossing dan csv wat ik ook aan het overwegen was :)
Pagina: 1