![]() |
![]() ![]() |
![]() |
![]()
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. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
To raczej MySQL a nie PHP. Losowanie z bazy (tu losuję jedną osobę":
Do tego dodać jedynie warunek, żeby nie losowało już wylosowanych. Zapisać chyba sobie poradzisz? -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 17.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
Do tego dodać jedynie warunek, żeby nie losowało już wylosowanych. Zapisać chyba sobie poradzisz? No właśnie, ja jestem na etapie, że nie wiem jak to ubrać w php. Jak przekazać parametr do funkcji php i go wykorzystać w mysql i potem coś zwrócić z tej funkcji. Proszę o pomoc lub namiar na jakiś przykład. |
|
|
![]()
Post
#4
|
|
![]() 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:
I masz jakiś numer. A do bazy:
Mogłem gdzieś zapomnieć o jakimś ciapku ![]() EDIT: wywaliłem warunki, bo przecież swoje musisz dać... Ten post edytował Kshyhoo 17.12.2013, 22:42:45 -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 17.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
wydaje mi się, że w MySQL mam to obsłużone, bo
zwraca mi jedną wartość, zawsze inną, zgodnie z zalożeniem. Ale jak to ubiorę w
to mam błąd Warning: mysql_num_rows() expects parameter 1 to be resource, null given in /home/malin/domains/malin.pl/public_html/gwiazdka2013/load.php on line 15 O co chodzi? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Nie bierz integerów w '' ani "", $_GET w zapytaniu bezpośrednio = sql incjection mysql_query(zapytanie,połaczenie) ? W mysql nie używa się połączenia w mysql_query. Łączysz się z bazą wcześniej i tyle. Liczysz wyniki dla $osoby, które nie istnieje? Widzę, że wyżej masz osoba a nie osob |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 17.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
Od razu lepiej
![]() Dziękuję. Już był o ogródku, już witał się z gąską. Dodałem parę warunków i znowu schody ;-(
Nie bierz integerów w '' ani "", $_GET w zapytaniu bezpośrednio = sql incjection Jak nie biorę integerów w '' ani "" to nie działa. Ale po dodaniu warunków, jak biorę w '', to też nie działa. Zapytanie z warunkami, które zwraca wartość w MySQL:
W php:
Błędy: *) wersja, gdy parametr jest bez '' - and para !=".$_q1." 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 'and para != and wylosowany =0 and wylosowany != ORDER BY rand() LIMIT 1' at line 3 *) wersja, gdy parameter jest w '' - and para !='".$_q1."' (oczywiście we wszystkich wystąpieniach). Wylosowany numer to - - ! Czyli wartości $r_wylosowana_osoba['nr'] i $r_wylosowana_osoba['imie'] mają null. Jak zrobię : $q1 = $_GET['p1']; echo $q1; zwraca mi wartość z parametru. W czym problem? |
|
|
![]()
Post
#8
|
|
![]() 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). -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 17.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
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:
a php mam null:
Ten post edytował malinowy 18.12.2013, 19:00:49 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Żeby "zobaczyć", co PHP chce pobrać z MySQL:
Bo może przez $_q1 = $_GET['p1']; nic nie przechodzi... Po za tym, trzeba by to "ubrać" w jakieś pętle kontrolne. Jak pobrał, to to, jak nie pobrał, to tamto... I wtedy można się bawić ![]() -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 17.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
oddaje wartość $_q1 do html natomiat, takie coś:
zwraca tylko "=" - znak równości. czyli $wer jest null. Dlaczego null? BTW. Dlaczego string nie zwraca nawy zmiennej ? |
|
|
![]()
Post
#12
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
A nawiązujesz połączenie z bazą danych?
-------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Wykonujesz zapytanie ale nie pobierasz wyników... mysql_fetch_assoc()
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 17.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
najpierw mam
potem
i nie ma nic ;-( a może to ma znaczenie, że kolumna w bazie jest intetger a $_q1 jest pobierane jako text? |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 17.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 28.04.2025 - 07:38 |