Terve. Yritän tehdä tietoja- sivulle skriptiä joka ilmoittaisi montako käyttäjää kuukauden sisällä on kirjautunut. Tablessa users on sarake ldate joka päivittyy aina kun käyttäjä kirjautuu.
Ongelma: Koodi tulostaa kaikkien käyttäjien määrän EIKÄ kuukauden sisällä kirjautuneita, kuten pitäisi. Pahoittelut purkkamaisesta koodista / huonosta toteutuksesta : (
<?php include "tietokantayhteys.php"; $date = date("Y-m-d H:i:s", strtotime("-1 month")); $query = mysql_query("SELECT nick,ldate FROM users"); $rowi = mysql_fetch_array($query); $queryni = mysql_query("SELECT nick,ldate FROM users WHERE '$date > $rowi[ldate]'"); $result = mysql_num_rows($queryni); print 'Kuukauden sisällä aktiivisena: <b>'.$result.'</b> käyttäjää.<br />'; } ?>
??? :(
Voit käyttää kentän nimeä vertailussa suoraan:
SELECT nick, ldate FROM users WHERE ldate < $date
https://www.ohjelmointiputka.net/oppaat/opas.
edit: Ja periaatteessa tuo mysql_num_rows() on myöskin turha (ellei haettuja tietoja tarvita muuten):
SELECT COUNT(*) FROM users WHERE ldate < $date
Tämä palauttaa suoraan kyseisten käyttäjien lukumäärän.
villev kirjoitti:
Voit käyttää kentän nimeä vertailussa suoraan:
SELECT nick, ldate FROM users WHERE ldate < $datehttps://www.ohjelmointiputka.net/oppaat/opas.
php?tunnus=mysqlphp03#vertailut
Aivan..
Koodi on nyt:
<?php include "kantaaaa.php"; $date = date("Y-m-d H:i:s", strtotime("-1 month")); $queryni = mysql_query("SELECT * FROM users WHERE '$date > ldate'"); $result = mysql_num_rows($queryni); print 'Kuukauden sisällä aktiivisena: <b>'.$result.'</b> käyttäjää.<br />'; ?>
Ei silti toimi.
Heittomerkkien säätöä:
SELECT COUNT(*) FROM users WHERE '$date' < ldate
Kiitos nopeasta avunannosta jälleen kerran, nyt toimii (Y).
Aihe on jo aika vanha, joten et voi enää vastata siihen.