Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/PSQL] Losowanie bez powtórzeń
pelzak
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 20.02.2005

Ostrzeżenie: (0%)
-----


Witam!

  1. <?php
  2.  
  3. $db=pg_connect("dbname=aaa user=aaa password=abc");
  4.  
  5. $sel=pg_exec($db,"select id_pytania,tresc from pytania 
  6.  where id_testu=$id_testu order by random() limit 1");
  7.  
  8. for ($i=0;$i<pg_NumRows($sel);$i++)
  9. list($id_pytania,$tresc)=pg_Fetch_Row($sel);
  10.  
  11. echo "<b>$tresc ?</b>";
  12.  
  13. ?>


Aby uniknac wylosowania ponownie tego samego pytania potrzebuje, aby ID pytania było zapisywane np. w tablicy. Potem po losowaniu kolejnego pytania trzebaby sprawdzac czy obecne ID juz nie wystapilo. Jezeli juz było to losujemy ponownie. Jezeli nie to wyswietlam pytanie.

Dodam jeszcze, ze pytania sa wyswietlane pojedynczo (losuje, wyswietla pytanie z odp, uzytkownik zaznacza odp i wciska dalej; i tak w kolko az zakonczy test)

Jakby ktos mogl to prosze o napisanie wlasnie takiego skryptu. Poniewaz probowalem na rozne sposoby rozwiazac ten problem, ale nigdy mi sie nie udawalo.

Słyszałem o DISTINC. Zastosowałem je, ale i tak powtorzylo sie pytanie.

  1. <?php
  2.  
  3. $sel=pg_exec($db,"SELECT DISTINCT id_pytania,tresc, random() FROM pytania
  4.  WHERE id_testu=1 ORDER BY 3 LIMIT 1");
  5.  
  6. ?>


Pozdrawiam

Ten post edytował pelzak 7.01.2006, 10:42:47
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 17:34