Cod: Selectaţi tot
id ---- titlu ---- descriere ---- url ---- nrac ---- dt
Cod: Selectaţi tot
<a class="link" href="class.CountAccess.php?url='.$rand['url'].'">'.$rand['titlu'].'<span><b>Descriere:</b><br> '.$rand['descriere'].'<br> <td> Nr. accesari: <td>'.$rand['nrac'].'</td></span></a>
Cod: Selectaţi tot
<?php
// - Clasa CountAccess ( marplo.net )
// inregistreaza si contorizeaza numarul de accesari
class CountAccess {
// defineste proprietati pentru numele tabelului si a coloanelor
public $tb_name = 'motor_de_cautare';
public $tb_cols = array('url'=>'url', 'nrac'=>'nrac', 'dt'=>'dt');
// proprietate pt. retinerea conexiunii la MySQL
protected $conn;
// Constructor
public function __construct($server, $user, $pass, $db) {
// creaza conexiunea la MySQL (o retine in proprietatea $conn)
$this->conn = new mysqli($server, $user, $pass, $db);
if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit; }
// verifica daca in $db exista tabelul din $tb_name
// daca nu exista, apeleaza metoda setTable() ca sa creeze tabelul
$Tables_in_db = 'Tables_in_'.$db;
if($result=$this->conn->query("SHOW TABLES IN $db WHERE `$Tables_in_db` = '$this->tb_name'")) {
if(mysqli_num_rows($result)<=0) {
$this->setTable();
$result->close();
}
}
}
// metoda pt. crearea tabelului
private function setTable() {
// sql query pt. CREATE TABLE
$sql = "CREATE TABLE `$this->tb_name` (
`". $this->tb_cols['url']. "` VARCHAR(88) PRIMARY KEY NOT NULL,
`". $this->tb_cols['nrac']. "` INT(8) UNSIGNED DEFAULT 1,
`". $this->tb_cols['dt']. "` TIMESTAMP
) CHARACTER SET utf8 COLLATE utf8_general_ci";
// executa $sql pt. a crea tabelul, in caz de esec returneaza eroarea
if (!$this->conn->query($sql) === TRUE) {
echo 'Eroare creare tabel: '. $this->conn->error;
}
}
// metoda pt. insert / update contor si data a valorii din $url
public function setAccess($url) {
$url = $this->conn->real_escape_string($url); // filtrare caractere speciale pentru a fi utilizate in interogare SQL
// sql query pt. INSERT / UPDATE
$sql = "UPDATE `". $this->tb_name. "` SET `". $this->tb_cols['nrac']. "`=(`". $this->tb_cols['nrac']. "`+1) WHERE `". $this->tb_cols['url']. "`='$url'";
// transmite $sql query la serverul MySQL, in caz de esec returneaza eroarea
if (!$this->conn->query($sql) === TRUE) {
echo 'Eroare: '. $this->conn->error;
}
}
// metoda pt. select numar de accesari si data ultimei accesari a valorii din $url
public function getAccess($url) {
$url = $this->conn->real_escape_string($url); // filtrare caractere speciale pentru a fi utilizate in interogare SQL
// sql query pt. SELECT
$sql = "SELECT `". $this->tb_cols['nrac']. "`, DATE_FORMAT(`". $this->tb_cols['dt']. "`, '%d-%m-%Y %H:%i') AS dt FROM `". $this->tb_name. "` WHERE `". $this->tb_cols['url']. "`='$url' LIMIT 1";
// efectueaza interogarea si retine rezultatul
$result = $this->conn->query($sql);
// daca $result contine cel putin un rand
if ($result->num_rows > 0) {
// adauga numar de accesari si data intr-un array
while($row = $result->fetch_assoc()) {
$re['nrac'] = $row['nrac'];
$re['dt'] = $row['dt'];
}
}
else {
$re['nrac'] = 0;
$re['dt'] = 0;
}
// inchide $result, pentru a elibera memoria
$result->close();
return $re; // returneazae Array-ul $re
}
}
/* Utilizare clasa CountAccess */
// datele pt. conectare la baza de date mysql (adresa_server, utilizator, parola si nume_baza_date)
$server = 'localhost';
$user = 'root';
$pass = '';
$db = 'motor_de_cautare';
// creaza conexiunea MySQL si o instanta de obiect la clasa CountAccess
$objCA = new CountAccess($server, $user, $pass, $db);
// daca exista $_GET['url']
if (isset($_GET['url'])) {
$url = trim(strip_tags($_GET['url'])); // sterge tag-uri si spatii exterioare
// apeleaza metoda setAccess() pt. insert / update numar accesari
$objCA->setAccess($url);
// Redirectioneaza browser-ul la adresa din $url
header("Location: " . $url); exit;
}
// functia returneaza numarul de accesari si data ultimei accesari
function getUrlAc($url) {
GLOBAL $objCA;
// apeleaza metoda getAccess() care returneaza un array cu contorul si data inregistrata
$ar_access = $objCA->getAccess($url);
// returneaza rezultatul
return 'Accesari: '. $ar_access['nrac']. ' ultima in: <i>'. $ar_access['dt']. '</i>';
}
?>
Cod: Selectaţi tot
google nr acc: 2
yahoo nr acc: 0