Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] licznik
Forum PHP.pl > Forum > Przedszkole
krzychu0808
Witam...
Zrobiłem sobie licznik wyświetlań danych podstron i mam pewien problem bo każde wejście na daną podstrone dodaje do bazy +1 robię to w taki sposób
  1. <?php
  2. $sql_add_wpis = "update `stat` set `ilosc`= `ilosc`+1 where `data`='$dzisiaj' and `nazwa`='$nazwa_stat'";
  3. $wykonaj2 = mysql_query ($sql_add_wpis);
  4. ?>


i nie wiem czemu nieraz mi dodaje nie 1 ale 2 lub 3... jest taka możliwość przy takim zapytaniu questionmark.gifquestionmark.gif?

może myślałem że się gdzieś zmienne gryzą i dąłem 999 do każdej zmiennej wygląda to tak:
  1. <?
  2. $nazwa_stat999='podglad'; //Statystyki podgladu
  3. include("./stat/stat_podglad.php"); //podladu
  4. ?>

stat_podglad.php
  1. <?
  2.    $dzisiaj999=date("d.m.Y");
  3.      $query999 = "SELECT * FROM stat WHERE data='$dzisiaj999' and nazwa='$nazwa_stat999'";
  4.      $result999 = mysql_query($query999);
  5.      $query_data999 = mysql_fetch_row($result999);
  6.      $ilosc999 = $query_data999[0];
  7.    if (empty($ilosc999)) {
  8.    $sql_add_wpis999 = "insert into stat(data, nazwa) values('$dzisiaj999', '$nazwa_stat999')";
  9.    mysql_query($sql_add_wpis999);
  10.    }
  11.   $sql_add_wpis999 = "update `stat` set `ilosc`= `ilosc`+1 where `data`='$dzisiaj999' and `nazwa`='$nazwa_stat999'";
  12.   $wykonaj999 = mysql_query ($sql_add_wpis999);
  13. ?>
1oBuZ
spróbuj wszelkei obliczenia wykonać po stronie PHP i do bazy przesyłać gotowy wynik, może że wtedy będzie OK
MateuszS
pobierz najpierw aktualna ilosc wyswietlen strony

  1. <?php
  2. $query = mysql_query("SELECT * FROM `stat`") or die(mysql_error());
  3. $row = mysql_fetch_assoc($query);
  4.  
  5. $nowy = $row['ilosc'] + 1;
  6. $query2 = mysql_query("UPDATE `stat` SET `ilosc`='".$nowy."' WHERE `data`='".$dzisiaj."'") or die(mysql_error());
  7. ?>
krzychu0808
Zrobiłem coś takiego:

  1. <?php
  2. $zapytanie = "SELECT * FROM stat WHERE data='$dzisiaj' and nazwa='$nazwa_stat'";
  3. $wykonaj = mysql_query ($zapytanie);
  4. $staty = mysql_fetch_array ($wykonaj);
  5. $ilosc_odwiedzin=$staty[ilosc]+1;
  6. $sql_add_wpis = "update `stat` set `ilosc`= '$ilosc_odwiedzin' where `data`='$dzisiaj' and `nazwa`='$nazwa_stat'";
  7. $wykonaj2 = mysql_query ($sql_add_wpis);
  8. ?>


i nadal to samo ;/ ten błąd jest tutaj czy może coś innego.. bo niema żadnych pętli bo to jest na samej górze podstrony ten include
melkorm
Cytat
bo każde wejście na daną podstrone dodaje do bazy +1


o_O' a po czym rozpoznajesz że użytkownik wszedł na stronę ? tzn. identyfikujesz.

I pokaz nam co kryje pod sobą zmienna $data
krzychu0808
ale na stronei jest 0 ruchu bo jeszcze nie podczepiłem jej nigdzie więc w google jej nie ma.. a wchodzę na podstronę i lukam do bazy danych a jak miałem 20 to nagle mam 23 a powinno być 21.. data to jest dzisiejsza data zresztą wyżej w poście to widać... bo codziennie dodaje się nowy rekord z inną datą i tam są dodawane... że mam statystyki dzienne.. ale tak się dzieje tylko co któreś dodanie do bazy...
melkorm
Wrzuć samo zapytanie:
  1. "UPDATE `stat` SET `ilosc`= `ilosc`+1 WHERE `data`='$dzisiaj' AND `nazwa`='$nazwa_stat'";

Tylko ,bez pobierania i dobrze się przyjzyj bazie i czy nie masz takich samych gdzies nazw staycznych, a to jak tworzysz datę nigdzie nie napsiałeś.
krzychu0808
coś muszę mieć gdzieś namieszane bo gdy jedną stronę odświeżam F5 to ładnie nalicza ale jak już zmienię dział i wybiorę wiadomość to mi już nalicza +3 lub +2 ;/ muszę troszkę przejrzeć kod
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.