Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Losowanie jednej osoby
koszar93
post
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 24.09.2010

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


Witam, napisałem skrypt na system loterii (system losuje z dodanych osób jedną i ta wylosowana dostaje nagrodę).

Zrobiłem dodawanie zgłoszeń. I teraz chce, że po zgłoszeniu się 100 osób system wylosuje 1 osobę. Graczy zapisanych mam w bazie. Takie mam tabele: id, name, acc_id.

Jakiej funkcji użyć aby wylosować jedną osobę z tych 100 zapisanych w bazie?

A i jeszcze jedno. Jak zrobić żeby już po wylosowaniu tej jednej osoby system wyczyścił całkowicie tą bazę w której znajdują się ci zapisani. Dodam że w kolumnie id mam auto_increment.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Max(id) może być mylące jeśli ktoś się skasuje zanim nastąpi losowanie.
  1. //pobiera z bazy liczbę osób oraz ich id porozdzielane przecinkami, byśmy mieli do czynienia tylko z faktycznie tam będącymi
  2. list( $ile, $numery ) = mysql_fetch_row(mysql_query("SELECT count(id), GROUP_CONCAT(id) FROM `nazwa_tabeli`"));
  3. if($ile == 100) {
  4. //z listy numerków tworzymy tablicę
  5. $numery = explode( ',', $numery );
  6. //i losujemy jeden
  7. $los = array_rand( $numery );
  8. //a teraz wyciągamy ddane wylosowanego
  9. $query = mysql_fetch_row(mysql_query("SELECT `name`, `acc_id` FROM `nazwa_tabeli` WHERE `id`='$los'"));
  10. echo 'Wygrywa: '.$query[0];
  11. //i nie zapomnijmy zapisać wygranego jak chcesz... dowolna forma. Ja nie robiłem tego więc
  12. //i czyścimy całą tabelę
  13. mysql_query("TRUNCATE TABLE `nazwa_tabeli`");
  14. } else {
  15. //brak stówki, więc rób co chcesz tutaj...
  16. }
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 05:21