kliks optellen
nielsvdwal - 02/07/2006 11:53
PHP gevorderde
heej,
Ik heb even een probleempje waar ik niet uitkom, en ik kon niet echt een goede titel bedenken. Ik heb een mysql tabel dat er ongeveer zo uitziet:
id | kliks
----------
1 | 56
2 | 45
etc.
Ik wil dan alle kliks bij elkaar optellen, maar ik zou niet weten hoe ik dat het makkelijkst zou kunnen doen. Kan iemand mij helpen?^^
Alvast bedankt.
23 antwoorden
Gesponsorde links
rickwieman - 02/07/2006 11:58
Onbekend
<?php
$sql = mysql_query("SELECT * FROM `kliktabel`");
while($fetch = mysql_fetch_object($sql)) {
$tel = $fetch->kliks + $tel;
}
echo $tel;
?>
<?php
$tel = $fetch -> kliks + $tel ;
}
?>
Zoiets?
Grz,
Rick.
WumTol - 02/07/2006 12:07
PHP beginner
<?php
echo @mysql_result(mysql_query("SELECT SUM(kliks) FROM tabel"), 0);
?>
Voldemort - 02/07/2006 12:08
PHP ver gevorderde
Zorg dat je veld een INT veld is (TINYINT, INT, BIGINT, etc), anders kloppen de berekeningen niet altijd.
nielsvdwal - 02/07/2006 12:12
PHP gevorderde
jaja, dat snap ik, maar nu heb ik een ander probleempje
<?
$datum_vandaag = mktime(0,0,0,date("m"),date("d"),date("Y"),time());
$stats_vandaag_1 = mysql_query("SELECT * FROM log WHERE datum='".$datum_vandaag."'") or die(mysql_error());
echo mysql_num_rows($stats_vandaag_1);
?>
is er iets fout aan dit stukje? want er komt nu 0 te staan. ook al weet ik zeker dat er vandaag al "geklikt" is..
WumTol - 02/07/2006 12:16 (laatste wijziging 02/07/2006 12:17)
PHP beginner
<?
$datum_vandaag = mktime(0,0,0,date("m"),date("d"),date("Y"));
$stats_vandaag_1 = mysql_query("SELECT * FROM log WHERE datum='".$datum_vandaag."'") or die(mysql_error());
echo mysql_num_rows($stats_vandaag_1);
?>
rickwieman - 02/07/2006 12:17
Onbekend
Check je phpMyAdmin eens... staat daar ook een 0?
grz,
Rick.
nielsvdwal - 02/07/2006 12:26
PHP gevorderde
werkt nog steeds niet, nog steeds komt er 0 te staan, en er moet op zijn minst 1 komen te staan, omdat elke keer als ik het check, dan word het weer geupdated in mijn database, dus het zou dan gewoon minimaal 1 moeten zijn. (dat laatste stukje code is trouwens om te kijken hoeveel unieke bezoekers er vandaag zijn geweest).
rickwieman - 02/07/2006 12:40
Onbekend
Maar is je INSERT script wel goed dan? Post dat ook eens...
Grz,
Rick.
nielsvdwal - 02/07/2006 12:47
PHP gevorderde
ja die is goed want het staat ook goed in de database, en als ik de pagina nog een keer bezoek word die ook goed geupdated. dus dat is het probleem niet.
rickwieman - 02/07/2006 12:51
Onbekend
<?
$datum_vandaag = date("m-d-Y");
$stats_vandaag_1 = mysql_query("SELECT * FROM log WHERE datum='".$datum_vandaag."'") or die(mysql_error());
echo mysql_num_rows($stats_vandaag_1);
?>
<?
$datum_vandaag = date ( "m-d-Y" ) ; ?>
Probeer die datum eens te regelen met date(); zoals hierboven... (laat trouwens eens zien hoe de datum in de DB staat)
Grz,
Rick.
rickwieman - 02/07/2006 12:56
Onbekend
Hmm... en als je hem er met date() in zet:
<?php
$datumvoorindb = date("Y-m-d h:i:s");
?>
<?php
$datumvoorindb = date ( "Y-m-d h:i:s" ) ; ?>
en hem er ook zo uit haalt.
Werkt dat wel?
Grz,
Rick.
nielsvdwal - 02/07/2006 12:58
PHP gevorderde
dat ga ik niet doen want dan kan ik niet meer sorteren etc.
rickwieman - 02/07/2006 13:01 (laatste wijziging 02/07/2006 13:02)
Onbekend
id | kliks | datetime
1 | 35 | 2006-07-02 12:59:00
<?php
$datumtijd = date("Y-m-d h:i:s");
$sql = mysql_query("SELECT * FROM `kliktabel` WHERE `datetime` = '" . $datumtijd . "' ORDER BY `id` DESC");
?>
<?php
$datumtijd = date ( "Y-m-d h:i:s" ) ;
$sql = mysql_query ( "SELECT * FROM `kliktabel` WHERE `datetime` = '" . $datumtijd . "' ORDER BY `id` DESC" ) ; ?>
Oh nee? Maak een index aan op `id` en een auto_increment, en je zult zien dat je toch kunt sorteren
Grz,
Rick.
nielsvdwal - 02/07/2006 13:02
PHP gevorderde
op datum sorteren lukt dan niet. en DAT wil ik, en het is niet de bedoeling dat ik mijn hele database om ga gooien, ik wil met time() werken.
rickwieman - 02/07/2006 13:04
Onbekend
Tja... dan kan ik je niet verder helpen... maar ik denk persoonlijk dat sorteren op `id` makkelijker is dan sorteren op datum en vervolgens de hele toestand niet kan lezen...
Grz,
Rick.
nielsvdwal - 02/07/2006 13:06 (laatste wijziging 02/07/2006 13:23)
PHP gevorderde
nee, dat is in mijn geval niet makkelijker, aangezien ik zodadelijk gegevens uit meerdere tabellen onder elkaar wil zetten en die sorteren op datum, als ik dat doe met id, dan heb ik hele tijd dubbele id's omdat het 2 verschillende tabellen zijn dus allebei tellen ze apart de id's.
edit: opgelost:
<?
<?
$stats_vandaag_1 = mysql_query("SELECT * FROM log") or die(mysql_error());
$i = 0;
while ($stats_vandaag = mysql_fetch_array($stats_vandaag_1))
{
$vandaag = date("d-m-Y");
$database = date("d-m-Y", $stats_vandaag['datum']);
if ($database == $vandaag)
{
$aantal_bezoekers = $i++;
}
else
{
//niks
}
}
echo $i;
?>
<?
<?
$i = 0 ;
{
$vandaag = date ( "d-m-Y" ) ; $database = date ( "d-m-Y" , $stats_vandaag [ 'datum' ] ) ; if ( $database == $vandaag )
{
$aantal_bezoekers = $i ++;
}
else
{
//niks
}
}
?>
Gerard - 02/07/2006 13:56
Ouwe rakker
SELECT COUNT(1)
FROM log
WHERE datum BETWEEN UNIX_TIMESTAMP(CURRENT_DATE() || ' 00:00:00')
AND UNIX_TIMESTAMP(CURRENT_DATE() || ' 23:59:59')
WHERE datum BETWEEN UNIX_TIMESTAMP( CURRENT_DATE( ) || ' 00:00:00' )
AND UNIX_TIMESTAMP( CURRENT_DATE( ) || ' 23:59:59' )
Gerard - 02/07/2006 14:50
Ouwe rakker
je kan die 2 best combineren. zolang je maar niet die manier met die while-loop aanhoud want dat is echt belachelijk slecht voor je renderingtijd.
Gesponsorde links
Dit onderwerp is gesloten .