Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Inkrementacja w bazie danych
Forum PHP.pl > Forum > Przedszkole
Dyshoo
Witam
Jak zrobić skrypt, który działałby jak "skarbonka". Czyli użytkownik klika na jakis link, ten go przekierowuje do skryptu, a skrypt dodaje do MySQL informacje ze dodano np. 1 gr. Za każdym kliknięcim liczba by rosła 1,2,3,4 itd. Chciałbym też dać ograniczenie, ze np. jezeli liczba bedzie wynosiłą 50 to skrypt wyświetli komunikat, że nie można wiecej dodawać.
Z góry dziękuję za pomoc smile.gif
galileox86
Rozwiazan moze byc wiele wydaje mi sie najprostrze

strona.php
tutaj oczywiscie mozesz sobie najpierw pobrac te dane ale pisze to juz twoja kwestnia nie wiem jak chcesz to wyswietlic wiec tylko daje linka do
skryptu php ktory wroci spowrotem na ta strone jesli wszytko poszlo ok natomiast jesli cos pojdzie nie tak to wyswietli co sie stalo
  1. <a href='dodaj.php'>dodaj</a>


dodaj.php
  1. <?php
  2. $arPoprzedniaStrona = explode('/',$_SERVER["HTTP_REFERER");
  3.  
  4.  
  5. // Wykona sie tylko i wylacznie gdy poprzednia strona byla taka jaka sobie zarzada
    les 
  6. if($arPoprzedniaStrona[sizeof($arPoprzedniaStrona)-1] == 'strona.php') {
  7.  // Połacz sie z baza
  8.  
  9.  // pobierz aktualna ilosc klikniec 
  10.  
  11. if( $aktualna_ilosc <50 ){ 
  12.  
  13. $aktualna_ilosc++;
  14.  
  15. // dodanie nowej wartosci $aktualna_ilosc do bazy danych
  16.  
  17. header("Location: strona.php");
  18.  
  19. } else {
  20.  
  21.  echo "maksimum 50 zostal osiagniete"; 
  22.  
  23. }
  24.  
  25. } else {
  26.  echo "Wywołanie zostało wykonane z nieprawidłowej strony";
  27. }
  28. ?>
Dyshoo
Jak pobrać aktualną ilość kliknięć?
sniezny_wilk
Musisz mieć wszystko oparte na MySQL, manual zawsze pomocny: tutaj i tutaj smile.gif Troszkę samodzielności, postaraj się napisać coś sam.

Ogólnie to jeśli masz w tabeli kliknięcia to wystarczy pobrać rekord odpowiedzialny za kliknięcie, a po kliknięciu zwiększać go o jeden.
Dyshoo
Skrypt zapisu danych do tabeli to już mam. Nie wiem tylko jakiego rodzaju ma być pole w tabeli i jak zrobić to co powiedziales smile.gif
sniezny_wilk
Jeśli kliknięć będzie bardzo dużo to zrób jako INTEGER, ogólnie pole musi reprezentować liczby.
Dyshoo
Juz sobie poradzilem winksmiley.jpg

  1. <?php
  2.  
  3. mysql_query("UPDATE tabela SET pole = pole+1;");
  4.  
  5. ?>
galileox86
co do pytania o aktualna ilosc klikniec nie wiem czy korzystasz z bibliotek do bazy danych czy tez z mysqli wiec napisze normalnie w mysql
  1. <?php
  2. $sql = "select `pole_ilosci_klikniec` from `tablica`";
  3.  
  4. $stmt = mysql_query($sql);
  5.  
  6. $dane = mysql_fetch_assoc($stmt);
  7.  
  8. if($dane['pole_ilosc_klikniec'] < 50){
  9.  // tutaj jakis tekst ze juz jest ta ilosc klikniec
  10. }
  11. ?>
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.