Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: "Kuukauden sisällä kirjautuneet"- ongelma (PHP)

Clacier [18.11.2010 16:20:58]

#

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 />';
}
?>

??? :(

villev [18.11.2010 16:25:07]

#

Voit käyttää kentän nimeä vertailussa suoraan:

SELECT nick, ldate FROM users WHERE ldate < $date

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=mysqlphp03#vertailut

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.

Clacier [18.11.2010 16:27:11]

#

villev kirjoitti:

Voit käyttää kentän nimeä vertailussa suoraan:

SELECT nick, ldate FROM users WHERE ldate < $date

https://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.

villev [18.11.2010 16:29:31]

#

Heittomerkkien säätöä:

SELECT COUNT(*) FROM users WHERE '$date' < ldate

Clacier [18.11.2010 16:32:00]

#

Kiitos nopeasta avunannosta jälleen kerran, nyt toimii (Y).

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta