Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

potrebna pomoc - imam mali problemcic

[es] :: PHP :: potrebna pomoc - imam mali problemcic

[ Pregleda: 1358 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

p3j4
Lokacija: Mordor

Član broj: 52949
Poruke: 122
*.dynamic.sbb.co.yu.



+78 Profil

icon potrebna pomoc - imam mali problemcic25.01.2007. u 21:23 - pre 211 meseci
Pokusavam da napravim jednu vrlo jednostavnu skripticu za ravnomernu raspodelu posetilaca na 3 url adrese pri cemu bi trebale da se u mysql beleze i statistike, odnosno broj izvrsenih redirekcija.

Bazu sam kreirao ovako:

Code:
CREATE TABLE `click_stats` (
`id` int(8) auto_increment PRIMARY KEY,
`hits1` int(8),
`hits2` int(8),
`hits3` int(8)
);


a sama skriptica izgleda ovako:

Code:
<?php

//definisanje sajtova na koje ide traffic
$url1 = "http://www.google.com/";
$url2 = "http://www.yahoo.com/";
$url3 = "http://www.msn.com/";

//konektuj se na mysql server i izaberi odgovarajucu bazu
@ $db = mysql_connect('localhost', 'xxxxx', 'xxxxx');

if (!$db) {
    echo 'Greska! Konekcija sa bazom trenutno nije moguca. Molimo Vas pokusajte ponovo kasnije.';
    exit;
}

mysql_select_db ('xxxxx');
$click_stats = mysql_query ("SELECT * from click_stats");
$t1 = mysql_fetch_array ($click_stats);
$hits1 = $t1['hits1'];
$hits2 = $t1['hits2'];
$hits3 = $t1['hits3'];


if (($hits1 <= $hits2) && ($hits1 <= $hits3)) {
    $hits1 = $hits1++;
    mysql_query("UPDATE click_stats SET hits1='$hits1' WHERE id=1");
    header("Location: $url1");
}

elseif (($hits2 < $hits1) && ($hits2 <= $hits3)) {
    $hits2 =$hits2++;
    mysql_query("UPDATE click_stats SET hits2='$hits2' WHERE id=1");
    header("Location: $url2");
}

elseif (($hits3 < $hits1) || ($hits3 < $hits2)) {
    $hits3 = $hits3++;
    mysql_query("UPDATE click_stats SET hits3='$hits3' WHERE id=1");
    header("Location: $url3");
}


?>



Dakle, kao sto se vidi, svaki put uzimam vrednost iz baze i uvecevam je za 1, a zatim je vracam u bazu.

Medjutim, problem je u tome sto vrednosti nece da se update-uju, a ja ne znam gde gresim jer mi ovo ovako izgleda ok.

Ako ima nekoga raspolozenog da pogleda skriptu i ukaze mi na gresku...

Internet forumi su kao javni toalet... udje ko želi, ispiša se gde poželi, i ode...
 
Odgovor na temu

Mr. Jack

Član broj: 39108
Poruke: 106
*.com
Via: [es] mailing liste



Profil

icon Re: potrebna pomoc - imam mali problemcic25.01.2007. u 23:27 - pre 211 meseci
> Dakle, kao sto se vidi, svaki put uzimam vrednost iz baze i
> uvecevam je za 1, a zatim je vracam u bazu.


> Medjutim, problem je u tome sto vrednosti nece da se update-uju, a
> ja ne znam gde gresim jer mi ovo ovako izgleda ok.


Code:


umesto

mysql_query("UPDATE click_stats SET hits3='$hits3' WHERE id=1");

probaj

mysql_query("UPDATE click_stats SET hits3=hits3+1 WHERE id=1");



i onda je ono inkrementiranje iznad nepotrebno.

Međutim mislim da ti je sam pristup ovome loš. Evo kako bih ja to rešio:

tabela ima 3 kolone id,url,hits

pomoću sql upita izvučeš red koji ima minimum pogodaka (hint: ugnježden upit sa min() agr. funkcijom),
uradiš update broja pogodaka, odeš na url.

I sve one if provere su nepotrebne!
Planets devastated
Mankind's on its knees
A saviour comes from out the skies
In answer to their pleas...

M.R. J.A.C.K
 
Odgovor na temu

[es] :: PHP :: potrebna pomoc - imam mali problemcic

[ Pregleda: 1358 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.