[ sale83 @ 22.12.2004. 22:41 ] @
Kako mogu da korisniku sajta ogranicim unos komantara na (npr komentar vesti ) tj da samo dva puta u roku 24 casa
postavi iste . Komentare cuvam u bazi podataka.

Struktura baze izgleda npr baza podataka Korisnici sa tabelom Komentari koja sadrzi polja
Id
Komentar
Korisnik
Vreme_unosa_komentara
Datum_unosa_koomentara

Meni treba:
1)kako da u bazi proverim dali je proslo 24 casa od postavljanja komentara.
2)ogranicim na samo dva komentara u roku 24 casa

Na forumu sam nasao ovako nesto:
Code:
 SELECT count(*) FROM poruke WHERE id_user = $userid AND
     DATE_ADD(datum_poruke, INTERVAL 24 HOURS) > NOW() 


samo mi ovaj kod nije jasan
Ja sam ovako pokusao da iskoristim taj kod ali nije islo:

Code:
 $provera_korisnika = "SELECT *FROM Komentari WHERE Korisnik= '$_POST[korisnik]'AND
     DATE_ADD(datum_unosa_komentara, INTERVAL 24 HOURS) > NOW() ";
     $rezultat_provere = mysql_query($provera_korisnika, $db_veza) or die ('Konekcija nije u redu');
         if (mysql_num_rows($rezultat_provere) >1)
    {
        echo '<div align="center">Ispunili ste svoj bonus.</div>';
    }


Ovaj deo koda verovatno bi trebalo drugacije izvesti:

Code:
if (mysql_num_rows($rezultat_provere) >1)
    {
        echo '<div align="center">Ispunili ste svoj bonus.</div>';
    }


Molim vas pomozite ako znate .
[ boccio @ 23.12.2004. 01:01 ] @
A sto ne bi umesto svega toga koristio cookie? Jes' da bi morao da stavis nesto tipa "you must have cookies enabled...", ali je bar jednostavnije i ne opterecujes bazu...
[ sale83 @ 23.12.2004. 01:16 ] @
Znam da uradim preko cookia
Ali necu da koristim cookie Sta ako je korisnik iskljucio mogucnost da prima kolacice,
pa onda ja njega moram da obavestim " Ej druze ti si iskljucio mogucnost primanja cookia ..."

Sa PHP-om i MySQl-om mi je nesto bolj realizacija mog projekta.
Samo nemogu da ogranicim Interval 24 casa i dve poruke u roku 24 casa.

Zato mi je potrebna pomoc .( Ak neko zna konkretan odgovor ).
[ noviKorisnik @ 23.12.2004. 09:14 ] @
Citat:
Id
Komentar
Korisnik
Vreme_unosa_komentara
Datum_unosa_koomentara

Postavi samo jedno polje za vreme, tipa DATETIME.

INTERVAL 24 HOURS je isto što i INTERVAL 1 DAY.
Citat:
Na forumu sam nasao ovako nesto:
Code:
 SELECT count(*) FROM poruke WHERE id_user = $userid AND
     DATE_ADD(datum_poruke, INTERVAL 24 HOURS) > NOW() 

samo mi ovaj kod nije jasan

Vraća broj poruka korisnika u intervalu. Recimo
Code:
$r = mysql_query ("SELECT count(*) FROM poruke WHERE id_user = $userid AND
     DATE_ADD(datum_poruke, INTERVAL 24 HOURS) > NOW()");
    list ($u24h) = mysql_fetch_row ($r);
    if ($u24h > 1) die ('dosta!');
[ sale83 @ 28.12.2004. 23:09 ] @
Zasto mi ovaj kod vraca gresku:
Code:

$rezultat = mysql_query ("SELECT count(*) FROM Komentari WHERE Korisnik = '$_POST[korisnik]' AND
     DATE_ADD(datum, INTERVAL 1 DAY) > NOW()");
    
     while (list ($korisnik) = mysql_fetch_row ($rezultat));
     if ($korisnik > 1) die ('dosta!');




Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in


U bazu podataka na osnovu gornjeg koda upisujem podatke

Code:
$dodaj = mysql_query ("INSERT INTO Korisnici VALUES (''('$_POST[korisnik]'),DATE_ADD(NOW(), INTERVAL '$datum' 1 DAY))");


Ovaj kod lepo upisuje vreme i korisnika .Medjutim kada krenem
da proveravam sa onim gore kodom Kod mi vraca vec naglasenu gresku.

Svoj sam problem resio za sada na drugi nacin . Koji zahteva malo vise koda i nije siguran po pitanju ogranicenja.
Zasto : Ja kada promenim datum na paleti gde stoji sat Mogu da upisem jos Dve poruke.

Neznam Mozda je to sto sam ja ujedno i server i Klijent.

Medjutim mislim da je bolja i sigurnija realizacija Sa INTERVAL -om

Samo ne znam zasto mi vraca gresku !
[ stanoje @ 29.12.2004. 00:15 ] @
stavi query u promenjlivu, echo promenljivu u browser, copy paste u mysql konzolu ili program pa vidi, ili jos bolje

Code:
echo mysql_error() 
posle upita a pre while

i samo ce ti se kasti