CREATE TABLE clics (id INTEGER AUTO_INCREMENT PRIMARY KEY,
url VARCHAR(128) UNIQUE NOT NULL,
compteur INTEGER DEFAULT 0) |
![]() |
|
INSERT INTO clics (url) VALUES ($url) |

CREATE TABLE clics (id INTEGER AUTO_INCREMENT PRIMARY KEY,
url VARCHAR(128) UNIQUE NOT NULL,
compteur INTEGER DEFAULT 0) |
![]() |
|
INSERT INTO clics (url) VALUES ($url) |
|
<?php
$base = 'phpfacile_compteclic.sqlite'; try { $bd = new SQLiteDatabase($base); } catch (SQLiteException $e) { die("La creation ou l'ouverture de la base [$base] a echouee ". "pour la raison suivante: ".$e->getMessage()); } // Creation de la table $sql = "CREATE TABLE clics (id INTEGER AUTO_INCREMENT PRIMARY KEY,". "url VARCHAR(128) UNIQUE NOT NULL,". "compteur INTEGER DEFAULT 0)"; $reponse = $bd->queryExec($sql, $err); if ($reponse === FALSE) { echo "La requete CREATE a echouee pour la raison suivante: ".$err; $bd = null; die(); } $urls = array("http://www.phpfacile.com/?testcompteurdeclics", "http://sql.toutestfacile.com/?testcompteurdeclics"); foreach ($urls as $url) { $sql = "INSERT INTO clics (url) VALUES ('".$url."')"; $reponse = $bd->queryExec($sql, $err); if ($reponse === FALSE) { echo "L'url [$url] n'a pu etre ajoutee pour la raison suivante: ".$err; } } // Deconnexion $bd = null; ?> |
|
<?php
$base = 'phpfacile_compteclic.sqlite'; $urlId = $_GET["urlid"]; function recupereURL($id, $base) { // Controle de securite: Est-ce que id est un entier ? if ((intVal($id) != $id) || strlen($id) == 0) return false; try { $bd = new SQLiteDatabase($base); } catch (SQLiteException $e) { echo "L'ouverture de la base [$base] a echouee ". "pour la raison suivante: ".$e->getMessage(); return false; } // REM: $id a ete controle avec d'etre utilise dans la requete $sql = "SELECT url FROM clics WHERE id=".$id; $reponse = $bd->query($sql, SQLITE_BOTH, $err); if ($reponse === FALSE) { echo "La requete a echouee pour la raison suivante: ".$err; } else { if ($row = $reponse->fetch()) { $bd = null; // deconnexion return $row["url"]; } } $bd = null; // deconnexion return false; } function incrementeCompteur($id, $base) { // Controle de securite: Est-ce que id est un entier ? if ((intVal($id) != $id) || strlen($id) == 0) return false; try { $bd = new SQLiteDatabase($base); } catch (SQLiteException $e) { echo "L'ouverture de la base [$base] a echouee ". "pour la raison suivante: ".$e->getMessage(); return false; } // REM: $id a ete controle avec d'etre utilise dans la requete $sql = "UPDATE clics SET compteur=compteur+1 WHERE id=".$id; $reponse = $bd->queryExec($sql, $err); if ($reponse === FALSE) { //Ne rien afficher sinon, la redirection risque de ne pas fonctionner //echo "La requete a echouee pour la raison suivante: ".$err; } $bd = null; // deconnexion } $url = recupereURL($urlId, $base); if ($url === FALSE) { die("Identifiant d'URL inconnu"); } incrementeCompteur($urlId, $base); header("Location: ".$url); die(); ?> |
|
<?php
$base = 'phpfacile_compteclic.sqlite'; try { $bd = new SQLiteDatabase($base); } catch (SQLiteException $e) { die("La creation ou l'ouverture de la base [$base] a echouee ". "pour la raison suivante: ".$e->getMessage()); } // Lecture des donnees dans la table $sql = "SELECT * FROM clics"; $reponse = $bd->query($sql, SQLITE_BOTH, $err); if ($reponse === FALSE) { echo "La requete a echouee pour la raison suivante: ".$err; } else { echo "Voici le decompte des clics:<br />\n"; while ($row = $reponse->fetch()) { echo $row['url'].": ".$row['compteur']." clic(s)<br />\n"; } } // Deconnexion $bd = null; ?> |