Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skrypt do losowania bez powtórzeń -jak
malinowy
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 17.12.2013

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


witam,

jestem początkujący w PHP, natomiast mam doswiadcenie w innych językach programowania,
także nie jestem pewien, czy będę się posługiwał językiem PHP-owym.

Potrzebuję napisać funkcję/procedurę, która będzie przyjmowała jeden parametr - nr_osoby.

Skrpt mawylosowaćz bazy dowolną osobę, która jeszcze nie była wylosowana i przy tej osobie zapisać, że jest już wylosowana.

Czyli logika miałaby być taka (trochę po Oracle-owemu);

select nr_osoby from osoby
into v_wylosowana_osoba
where wylosowany='N'
and nr_osoby != :parametr_nr_osoby
/* to po mysql-owemu*/
ORDER BY RAND()
LIMIT 1 ;

update osoby set wylosowa='Y where nr_osoby=v_wylosowana_osoba;
commit;

if v_wylosowana_osoba not null then
return v_wylosowana_osoba ;
else
return "już wszyscy wylosowani";
end if;

Proszę o pomoc.

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





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




A gdzie tu PHP? Wszystko zrób po stronie MySQL. Przypisz jedynie wynik do zmiennej:
  1. $wylosowana_osoba = "SELECT nr_osoby FROM osoby WHERE wylosowany=0 ORDER BY rand() LIMIT 1";

I masz jakiś numer.
A do bazy:
  1. $zapytanie = "UPDATE osoby SET wylosowany=1 WHERE nr_osoby=$wylosowana_osoba";

Mogłem gdzieś zapomnieć o jakimś ciapku (IMG:style_emoticons/default/tongue.gif)

EDIT: wywaliłem warunki, bo przecież swoje musisz dać...

Ten post edytował Kshyhoo 17.12.2013, 22:42:45
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: 28.12.2025 - 12:47