Cerere cod preluare vizitele din ziua anterioara

Aici adaugati Cererile sau Ofertele dv. de script-uri, proiecte website sau Traduceri.
florin07_fcsb
Mesaje: 7

Cerere cod preluare vizitele din ziua anterioara

Buna Ziua . Aveti o functie sa imi preia vizitele din ziua anterioara ?

MarPlo
Salut
Nu am un astfel de cod facut, si nu exista o astfel de functie. Ci trebuie sa faci un script care inregistreaza intr-o baza de date numarul de vizite de azi; iar cand se trece la ziua urmatore, adauga numarul inregistrat intr-un "ieri" si incepe de la 1 pentru "azi".

florin07_fcsb
pai si cum pot face asa ceva ?
am scriptul care inregistreaza pentru azi , dar nu stiu cum sa le trec pentru ieri.

MarPlo
De unde sa stie cineva sa-ti spuna cum sa faci daca nici nu stie ce script ai?
Daca nu tu ai facut scriptul si nu te pricepi, poti apela la cel care l-a facut.

florin07_fcsb
Eu l-am facut. Am vrut sa ii fac o copie la un site, totul bine si frumos , dar nu mi-a iesit sa fac sa apara vizitele de ieri .
Vreau sa apara vizitele aici: trafic-wap.info/site.php?id=2 unde scrie Ieri.

MarPlo
Pune codul pe care l-ai facut pentru inregistrare si preluare vizite, si forma tabelului in care ssalvezi datele (daca e in mysql).

florin07_fcsb
Acest cod este pentru inregistrare vizite

Cod: Selectaţi tot

$xyz->query('UPDATE`site`SET`afisari_a`="0",`trimise_a`="0",`primite_a`="0"');
acesta este pentru preluare

Cod: Selectaţi tot

$vizite=$xyz->query('SELECT COUNT(*)FROM`vizite` WHERE`site`="'.$id.'"')->fetch_row()[0];
si aceasta este baza unde se salveaza datele. Structura de tabel pentru tabelul `vizite`:

Cod: Selectaţi tot

CREATE TABLE IF NOT EXISTS `vizite` (
  `ip` varchar(1000) NOT NULL,
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `site` int(11) NOT NULL,
  `data` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1685 ;
nu te-am inteles cu forma tabelului in care se salveaza datele. sper ca am pus tot ce iti trebuie.

MarPlo
Poti sa pui coloana "data" de tip DATE (daca in ea salvezi data si timpul inregistrarii).
Apoi, pt numarul de vizite azi incearca cu acest Select:

Cod: Selectaţi tot

$sql ='SELECT COUNT(*) FROM vizite WHERE site="'.$id.'"' AND data = DATE_SUB(CONCAT(CURDATE(), ' 00:00:00'), INTERVAL 1 DAY)';
Iar pt ieri:

Cod: Selectaţi tot

$sql ='SELECT COUNT(*) FROM vizite WHERE site="'.$id.'"' AND data = DATE_SUB(CONCAT(CURDATE(), ' 00:00:00'), INTERVAL 2 DAY)';
- Informatii si exemple despre asta poti gasi pe internet la cautare: " mysql date yesterday ".

florin07_fcsb
Multumesc pentru ajutor , a mers. insa mai am o problema. mie imi baga vizitele pe ip in baza ,si mi se salveaza de la toate zilele, dar daca cineva a intrat ieri pe site si intra si azi nu mai creste vizita aceea. ce trebuie sa fac ca sa mearga totul ok.

MarPlo
Inainte de a inregistra vizita, faci un Select prin care verifici daca acel ip a fost inregistrat in ziua curenta. Daca Select-ul nu returneaza nici un rand, aplici Insert.

Cod: Selectaţi tot

$sql ='SELECT id FROM vizite WHERE ip="'.$ip.'"' AND DATE(data) = DATE(NOW()) LIMIT 1';
$resql = $conn->query($sql);
if($resql->num_rows <1) {
  //Insert..
}

florin07_fcsb
imi da eroare in functia query :

Cod: Selectaţi tot

Fatal error: Call to a member function query() on a non-object in /home/cnrhlnba/public_html/trafic-wap.info/counter.php on line 32
Eu asa am inn baza cu insert

Cod: Selectaţi tot

$xyz->query( INSERT INTO vizite SET ip ="'.$ip.'", data ="'.date(d,time()).'",  site ="'.$id.'"');
si cu select asa

Cod: Selectaţi tot

$exista = $xyz->query(SELECT COUNT(id) FROM vizite WHERE ip ="'.$ip.'" AND  site ="'.$id.'"')->fetch_array();
imi poti face pentru scriptul meu ?

MarPlo
In loc de $conn pune obiectul cu numele cum e in acel script, $xyz. Coloana "data" din tabel sa fie de tip DATE.

Cod: Selectaţi tot

$sql ='SELECT id FROM vizite WHERE ip="'.$ip.'"' AND DATE(data) = DATE(NOW()) LIMIT 1';
$resql = $xyz->query($sql);
if($resql->num_rows <1){
  $xyz->query('INSERT INTO vizite SET ip ="'.$ip.'", data = DATE(NOW()),  site ="'.$id.'"');
}

Subiecte similare