hej har hørt fra noqex han gerne ville se noget php så folk kunne forstå det.
Jeg vil først springe ud i at lave et statistik system og jeg vil bygge det ovenpå grunks gamle side script:
http://www.testmax.dk/For.....ead/208/id-site.aspx da dette egentlig var enkelt og nemt at forstå.
jeg starter med at lave siderne ligesom grunk:
<?
/* Php Load og dette skal gemmes som index.php filen.*/
$page = $_GET['p']; // vi henter forst variablen p fra URL'en ved hjalp af $_GET variablen.
$page = strtolower($page); //for at sikre at brugeren ikke bare har skrevet HOME med stort laver vi lige en funktion til at lave alt skrift i lilleskrift
if($page == 'home'){ // hvis $p er home vil dette blive loaded der kunne evt hentes en ny side ligesom grunk vedhjalp af include funktionen.
echo 'dette er siden home';
} // hvis p ikke er home vil scriptet forsatte.
elseif($page == 'news'){ // hvis $p er news vil dette blive loaded.
echo 'dette er siden news';
} // ellers vil den forsatte
elseif($page == 'statistik'){ // hvis $p er statistik vil dette blive loaded.
include('statistik.php');
} // ellers vil den forsatte
elseif(isset($page)){ //til sidst inden vi lukker checker vi lige om brugeren har provet at satte $_GET['p'] i URL'en men ikke har ramt nogle sider, for hvis dette er tilfaldet burde han ledes til en 404 error side.
{
echo 'Error 404: Siden blev ikke fundet.';
} else { //tilsidst laver vi sa forsiden hvis brugeren er ny pa vores side og $p ikke er sat blevet brugt endnu.
echo 'Velkommen til siden.';
} // og lukker hele vores side loadnings system.
echo '<br /><br /><a href="?p=Home">Hjem</a>-<a href="?p=Statistik">Statistik</a>-<a href="?p=News">Login</a>'; // tilsidst echoer vi ogsa lige menuen sadan at uanset hvilken side du lander pa sa har du menuen og kan trykke rundt.
?>
Som i kunne se lavede jeg en funktion ligesom grunks nemlig 'include('filnavn');'
denne funktion går ind og henter filen og loader den direkte på stedet og er meget smart hvis du har store sciprt du skal bruge midt i fx en index fil.
Nu skal vi så have sat vores database tabel op hvor vores statistik skal gemmes.
håber i har lidt kendskab til det for jeg vil springe hurtigt over det.
vi laver tabel kaldet statistik, med 3 felter: id, page, nr.
id INT auto_increment og primær nøgle.
page TINYTEXT.
nr INT.
hvis i ikke forstår dette så prøv alligevel så svært er det ikke.
nu skal vi så have sat vores 3 sider ind, dette gør vi på knappen indsæt som er en funktion i phpmyadmin. (HUSK SKRIV MED LILLE.)
her vil da så komme 3 felter hvor du hver af dem kun udfylder punktet page med navnet news, statistik og home.
så skulle du gerne have 3 linjer i din tabel med de 3 sider.
derefter skal vi lave 2 forespørgsel som vi kommer til at bruge i vores php system.
den første er en hvor vi skal have alt information ud af tabellen, den mySQL funktion vi bruger hedder SELECT, dog er funktionen til dette så simpel så jeg vil bare skrive den op så i forstår:
SELECT * FROM `statistik` ORDER BY `id` DESC;
oversat: marker ALT fra statistik sæt i orden efter id lavest først højest tilsidst.
den anden er når der er en bruger der har trykket så skal vi helst opdatere feltet nr med en denne funktion hedder UPDATE og forespørgelsen ser sådan ud:
UPDATE `statistik` SET `nr` = `nr` + 1 WHERE `page` = \''.$page.'\';
oversat: opdater statistik sæt nr til nr+1 hvor page er lig med variablen page.
så opdatere vi lige vores index.php fil.
<?
/* Php Load og dette skal gemmes som index.php filen.*/
// først skal vi lige have åbnet databasen her er variablerne som skal udfyldes:
$server = '';
$username = 'localhost';
$password = 'admin';
$database = 'database';
$link = mysql_connect($server, $username, $password); //laver foresp til mysql connect.
if ($link){
mysql_select_db($database, $link); //laver foresp til databasen.
}
$page = $_GET['p']; // vi henter forst variablen p fra URL'en ved hjalp af $_GET variablen.
$page = strtolower($page); //for at sikre at brugeren ikke bare har skrevet HOME med stort laver vi lige en funktion til at lave alt skrift i lilleskrift
if($page == 'home'){ // hvis $p er home vil dette blive loaded der kunne evt hentes en ny side ligesom grunk vedhjalp af include funktionen.
$sql = 'UPDATE `statistik` SET `nr` = `nr` + 1 WHERE `page` = \''.$page.'\';'; //indsætter vores sql.
mysql_query($sql); //køre forespørgelsen.
echo 'dette er siden home';
} // hvis p ikke er home vil scriptet forsatte.
elseif($page == 'news'){ // hvis $p er news vil dette blive loaded.
$sql = 'UPDATE `statistik` SET `nr` = `nr` + 1 WHERE `page` = \''.$page.'\';'; //indsætter vores sql.
mysql_query($sql); //køre forespørgelsen.
echo 'dette er siden news';
} // ellers vil den forsatte
elseif($page == 'statistik'){ // hvis $p er statistik vil dette blive loaded.
$sql = 'UPDATE `statistik` SET `nr` = `nr` + 1 WHERE `page` = \''.$page.'\';'; //indsætter vores sql.
mysql_query($sql); //køre forespørgelsen.
include('statistik.php');
} // ellers vil den forsatte
elseif(isset($page)){ //til sidst inden vi lukker checker vi lige om brugeren har provet at satte $_GET['p'] i URL'en men ikke har ramt nogle sider, for hvis dette er tilfaldet burde han ledes til en 404 error side.
{
echo 'Error 404: Siden blev ikke fundet.';
} else { //tilsidst laver vi sa forsiden hvis brugeren er ny pa vores side og $p ikke er sat blevet brugt endnu.
echo 'Velkommen til siden.';
} // og lukker hele vores side loadnings system.
echo '<br /><br /><a href="?p=Home">Hjem</a>-<a href="?p=Statistik">Statistik</a>-<a href="?p=News">Login</a>'; // tilsidst echoer vi ogsa lige menuen sadan at uanset hvilken side du lander pa sa har du menuen og kan trykke rundt.
?>
nu mangler vi blot at lave vores statistik side for at se hvor mange som har trykket på hver side:
<?php
/* Php Load og dette skal gemmes som statistik.php filen og skal ligge i samme mappe som index.php.*/
echo '<table>'; //starter tabellen.
echo '<tr><td>Side:</td><td>Antal clicks:</td></tr>'; //laver toppen.
$sql = 'SELECT * FROM `statistik` ORDER BY `id` DESC;'; //indsætter vores foresp.
$result = mysql_query($sql); //laver query.
if ($result){ //hvis query går godt henter vi resten og laver et array.
while($række = mysql_fetch_array($result)) { //for hver række sætter vi et resultat og tømmer den med funktionen mysql_fetch_array.
$data[] = $række; //indsætter vi dem i data array.
}
}
for($i=0;$i<count($data);$i++){ //$i = 0, når i bliver lig eller over antal data stopper den, hvergang bliver der lagt en til i.
extract($data[$i]); //extracter dataen fra array nr $i (0, 1, 2, 3 osv).
echo '<tr><td>'.$page.'</td><td>'.$nr.'</td></tr>'; //echoer output hvergang for er.
}
echo '</table>'; //slutter tabellen.
?>
og så skulle systemet gerne virke.
dog har jeg ikke testet det så hvis i finder fejl er i velkommen til lige at skrive for det blev sku lidt sent denne søndag jeg sad og lavede det :D