Versio

Random & Limit

Overzicht Reageren

Pagina: 1 2 volgende »

Niborx Trump

Niborx Trump

20/01/2009 17:32:00
Quote Anchor link
Goedenavond,

Ik vroeg mij af of het mogelijk was om via een query een random en een limit in te stellen.

Ik heb een tabel (plaatjes), in deze tabel staan 10 plaatjes. Maar nu wil ik via een query er random 6 stuks uithalen.

Is dit mogelijk?

Edit:
Mysql (helaas) ;)
 
PHP hulp

PHP hulp

25/05/2012 14:00:56
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Han eev

Han eev

20/01/2009 17:34:00
Quote Anchor link
SELECT * FROM xyz ORDER BY RAND() LIMIT 6
 
Niborx Trump

Niborx Trump

20/01/2009 17:36:00
Quote Anchor link
Aha, dus doordat je ze eerst sorteert op random. En dan pas een limit instelt, lukt het!?

Bedankt!
 
Eddy Erkelens

Eddy Erkelens

20/01/2009 17:44:00
Quote Anchor link
Hoe wil je het anders doen dan?
LIMIT komt altijd als laatste...
 
Niborx Trump

Niborx Trump

20/01/2009 17:47:00
Quote Anchor link
Via php, maar dat vond ik overdreven! :D
 
The Ultimate

The Ultimate

21/01/2009 23:02:00
Quote Anchor link
Hoe kan het dat dit wel werkt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

    $sql
= "SELECT id,question,counter,status
            FROM poll_question
            ORDER BY RAND()
            LIMIT 1
            "
;

?>


En dit niet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php

    $sql
= "SELECT id,question,counter,status
            FROM poll_question
            WHERE status = 1
            ORDER BY RAND()
            LIMIT 1
            "
;

?>
Gewijzigd op 01/01/1970 01:00:00 door The Ultimate
 
- SanThe -

- SanThe -

21/01/2009 23:20:00
Quote Anchor link
AND status = 1

moet dat niet
WHERE status = 1
zijn?
 
Arjan jansen

arjan jansen

21/01/2009 23:47:00
Quote Anchor link
Ja dat moet where status=1 zijn
 
The Ultimate

The Ultimate

22/01/2009 13:19:00
Quote Anchor link
@ Santhe en Arjan:

Ja dat moet inderdaad WHERE zijn, maar helaas: het werkt niet. Kennelijk kun je geen extra condities verbinden.....

Iemand een oplossing?
 
Joren de Wit
Beheerder

Joren de Wit

22/01/2009 13:38:00
Quote Anchor link
Welke foutmelding krijg je? Die query lijkt mij gewoon in orde...
 
Arjan jansen

arjan jansen

22/01/2009 13:40:00
Quote Anchor link
hallo

en dit werkt dit niet
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php

    $sql
= "SELECT id,question,counter,status
            FROM poll_question
            WHERE id = 1
            ORDER BY RAND()
            LIMIT 1
            "
;

?>
 
Frank -

Frank -

22/01/2009 13:56:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
WHERE id = 1

Hoeveel records zullen er zijn waar het id de waarde 1 heeft?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
ORDER BY RAND()

Ik verwacht je slechts 1 record hebt die aan de voorwaarden voldoet, je kunt dan linksom of rechtsom gaan sorteren, maar daar zul je verdraaid weinig variabele in zien... Ga jij de waarde 1 maar eens sorteren!
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
LIMIT 1

Dit is in feite al overbodig, wanneer je op id gaat zoeken kun je in bovenstaade queries maar 1 resultaat krijgen. De LIMIT kun je dan gewoon weglaten, evenals de ORDER BY die volkomen overbodig is.

Quote:
dit werkt dit niet
Gelukkig heb ik m'n glazen bol een update gegeven en zie ik er weer wat in. Zonder zo'n bolletje zou het toch maar raden zijn wat er nu fout gaat, het is wel een bijzonder duidelijke omschrijving van het probleem.
 
- SanThe -

- SanThe -

22/01/2009 14:00:00
Quote Anchor link
@pgFrank: Arjan heeft het over id = 1. Maar Bart (TS) heeft het over status = 1
 
Frank -

Frank -

22/01/2009 14:07:00
Quote Anchor link
@SanThe: Ik weet het, het is voor een hoop mensen dan ook zaak om heel goed de SQL in de gaten te houden en te kijken of ze wel die informatie opvragen die ze nodig hebben.

ORDER BY RAND()
LIMIT 6

werkt uitstekend, ook al zijn er mensen die daar anders over denken.
 
The Ultimate

The Ultimate

22/01/2009 15:32:00
Quote Anchor link
@pgFrank:

ORDER BY RAND()
LIMIT 6

werkt ongetwijfeld heel erg goed. Het gaat mij echter om het volgende:

Ik heb een database met daarin poll-vragen. Op een pagina dient 1 poll (random) te worden getoond. Er zijn polls die zichtbaar zijn (status = 1), onzichtbaar (status = 2) en zo nog een aantal opties. Zoals je zult begrijpen wil ik 1 random poll laten zien waarvan de status 1 (zichtbaar) is.

Dit lukt dus niet.....

Wil jij nog een keer in je glazen bol kijken aub? =)
 
Arjan Kapteijn

Arjan Kapteijn

22/01/2009 15:35:00
Quote Anchor link
Status is een door MySQL gereserveerd keyword.
 
The Ultimate

The Ultimate

22/01/2009 15:37:00
Quote Anchor link
aaaaah, zou dat het zijn.....

en 'read' ook huh? Die had ik gister namelijk al te pakken.

Ik ga het snel proberen en ben zo terug met het antwoord....!!

EDIT:
@Arjan Kapteijn:
Het kan best zijn wat jij zegt, maar daar heeft het dus niets mee te maken. Na 'status' te hebben gewijzigd in 'visibility' krijg ik nog steeds die vervelende foutmelding:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
Gewijzigd op 01/01/1970 01:00:00 door The Ultimate
 
Frank -

Frank -

22/01/2009 15:51:00
Quote Anchor link
Arjan Kapteijn schreef op 22.01.2009 15:35:
Status is een door MySQL gereserveerd keyword.
Niet volgens de handleiding en ik heb daar ook nog nooit problemen mee gehad.

Mocht status wel een gereserveerd woord zijn, had je daar al lang een foutmelding op gehad. En die zie ik hier nergens, dus mag je aannemen dat status geen gereserveerd woord is. Of doet niemand iets aan foutafhandeling??

Edit: url naar de gereserveerde woorden toegevoegd.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Frank -

Frank -

22/01/2009 15:53:00
Quote Anchor link
Bart schreef op 22.01.2009 15:37:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
Echo je query en ziet in één keer wat er fout gaat. Ik vermoed dat ergens een deel van je SQL ontbreekt.

status is geen gereserveerd woord, dan kan het probleem dus niet zijn geweest.
 
Arjan Kapteijn

Arjan Kapteijn

22/01/2009 15:54:00
Quote Anchor link
Geen gereserveerd woord, wel een functie o.i.d. Hoe dan ook, status als kolomnaam gaat niet werken tenzij je gaat lopen kloten met quotes en backticks en andere meuk.
 
Frank -

Frank -

22/01/2009 15:55:00
Quote Anchor link
Arjan Kapteijn schreef op 22.01.2009 15:54:
Geen gereserveerd woord, wel een functie o.i.d. Hoe dan ook, status als kolomnaam gaat niet werken tenzij je gaat lopen kloten met quotes en backticks en andere meuk.
Onzin, zie de handleiding.
 

Pagina: 1 2 volgende »



Overzicht Reageren

Get Adobe Flash player