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




Zmienne w zapytaniu w pojedyncze ciapki, czyli ' (apostrofy).

I bez łączenia ciągów, czyli bez . (kropek).
Go to the top of the page
+Quote Post
malinowy
post
Post #3





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

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


Cytat(Kshyhoo @ 18.12.2013, 15:27:40 ) *
Zmienne w zapytaniu w pojedyncze ciapki, czyli ' (apostrofy).

I bez łączenia ciągów, czyli bez . (kropek).


Tak działa ;-)

Miałem też błąd w nazwie zmiennej.

Dzięki.

================


Panowie,
a tu co jest nie tak ?

Baza zwraca rekord na takie zapyanie:
  1. SELECT o1.nr AS nr, o1.wylosowal AS wylosowal, o2.imie AS imie
  2. FROM g2013_osoby o1
  3. LEFT JOIN g2013_osoby o2 ON o1.nr = o2.wylosowany_przez
  4. WHERE o1.nr =1 LIMIT 1


a php mam null:

  1. $_q1 = $_GET['p1'];
  2.  
  3. $q_weryfikacja = "SELECT o1.nr as nr, o1.wylosowal as wylosowal, o2.imie as imie
  4. FROM g2013_osoby o1
  5. LEFT JOIN g2013_osoby o2 ON o1.nr = o2.wylosowany_przez
  6. WHERE o1.nr ='$_q1' LIMIT 1";
  7.  
  8. $weryfikacja = mysql_query($q_weryfikacja) or die(mysql_error());
  9. $wer = $weryfikacja['wylosowal'];
  10. echo $wer ;


Ten post edytował malinowy 18.12.2013, 19:00:49
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: 29.12.2025 - 21:32