Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Ograniczenie kliknięcia przycisku
Forum PHP.pl > Forum > Przedszkole
kiepski96
Chciałbym na moją stronę zrobić pewien ogranicznik
Działałoby to na zasadzie:

Ma to być strona , w której będzie można wygrać nagrody
Gdy 50 osób zamówi nagrodę już więcej nie będzie mogło.
Może jakiś ogranicznik w mysql?
Dodam,że będzie się trzeba najpierw zalogować.
tehaha
masz konkretny problem czy tylko chciałeś się pochwalić tym co chcesz zrobić? właściwie to sam sobie odpowiedziałeś na pytanie - przed zamówieniem nagrody sprawdzasz ile osób ją zamówiło jeżeli ta liczba jest >= 50 to zamiast dodać zamówienie, wyświetlasz jakiś komunikat, że już nie można
kiepski96
I jak zrobić,abym po rejestracji użytkownika widział jego ip?
Aby dodawało jego ip do bazy

Jak tak,to załatwię to normalnym formularzem rejestracji
wookieb
  1. $_SERVER['REMOTE_ADDR'];

Tu jest zawarte ip użytkownika otwierającego stronę.
kiepski96
A jak zrobić limit zarejestrowanych osób?
Np,zarejestruje się 50 i aby więcej się nie dało i wyskakiwał błąd
tehaha
no zanim dodasz użytkownika pobierasz zapytaniem zarejestrowanych użytkowników i jeżeli mysql_num_rows() >= 50 to wyświetlasz komunikat, a jeżeli nie to rejestrujesz
norak642
Ja się prawie wcale na mysql nie znam. Ale powinieneś raczej zrobić tak, że jeśli klucz podstawowy w tabeli zarejestrowanych użytkowników jest <50 to więcej nie może się rejestrować(czyt. nie można dodawać więcej rekordów do tabeli).
kiepski96
Nie chodzi mi o komunikat,tylko czy da się zrobić w tabeli mysql limit ?
Wiktor P.
Cytat(norak642 @ 14.06.2010, 16:45:37 ) *
Ja się prawie wcale na mysql nie znam. Ale powinieneś raczej zrobić tak, że jeśli klucz podstawowy w tabeli zarejestrowanych użytkowników jest <50 to więcej nie może się rejestrować(czyt. nie można dodawać więcej rekordów do tabeli).

Raczej nie, że klucz podstawowy <= 50, tylko ilość wpisów jest <= 50.
Jeśli zajdzie porzeba usunięcia rekordu w bazie (a już nie mówię kilku rekordów), to nie usunięte klucze podstawowe PRIMARY KEY nie zmienią z automata swojej wartości,
tylko będzie dziura w ich numeracji, np. id=1, id=2, id=5, id=6 itd.
W związku z tym możesz mieć mniej wpisów niż 50, choć niektóre klucze podstawowe będa mieć wartość większą niż 50.

Do zapytania select masz fajną funkcję mysql_num_rows();

Robisz
  1. $x = mysql_query("SELECT COŚ Z JAKIEJŚ TABELI");
  2.  
  3. $i = mysql_num_rows($x);
  4.  
  5. Albo inaczej, bardziej po rusku:
  6.  
  7. $i = 0;
  8. while ($w = mysql_fetch_assoc($x) )
  9. {
  10. $i++;
  11. }
  12.  
  13.  
  14. I takim najprostszym warunkiem sprawdzasz sobie, czy zmienna $i przekroczyła wartość 50:
  15.  
  16. If ( $i >= 50 )
  17. {
  18. //funkcja wyświetlająca alert o zakończeniu konkursu
  19. }
  20. else
  21. {
  22. // Funkcja jaka ci jest potrzebna do działania konkursu
  23. }
  24.  


PS - pamiętaj, że u niektórych dostawców internetu jest zmienne IP.
Użytkownik wyłączy i włączy jeszcze raz router czy modem i ma inne IP niż przed chwilą.
Tak jest np. w Neostradzie.
kiepski96
Wiem,ale dzięki
jajcarzd1
Zrób normalnego counta w bazie i tyle
  1. SELECT COUNT(*) FROM TABELA
kiepski96
Nie mogę sobie poradzić,co wpisać w bazie w phpmyadmin?
jajcarzd1
Cytat(kiepski96 @ 21.06.2010, 22:27:36 ) *
Nie mogę sobie poradzić,co wpisać w bazie w phpmyadmin?



No to zajrzyj do jakiegoś manula zwiazanego z mysql bo Ty nawet wiedzy podstawowej nie masz więc jak may Ci niby pomóc.

  1. SELECT COUNT(*) FROM TABELA;


za TABELA wstaw nazwę swojej tabeli. To zapytanie zwróci Ci ilość rekordów jakie bedziesz miał w tabeli z użytkownikami.
kiepski96
A w kodzie php co wklepać?
TheSnake
Programowanie nie jest dla Ciebie, ty tylko czekasz, aż ktoś Ci powie co trzeba "wklepać". Tu trzeba chociaż trochę pomyśleć sam.

Wszystko to co tu zostało napisane przez innych forumowiczów to podstawy podstaw, w każdym kursie PHP/MySQL to znajdziesz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.