Avatar billede webweaver Praktikant
11. april 2005 - 21:34 Der er 9 kommentarer og
1 løsning

Kan denne kode bruges til "Besøg i dag" tæller??

Hej Proffer. Jeg har nogle problemer med at kode en tæller som tæller "besøg i dag". Den skal kun tælle rækkerne i databasen som stammer fra dags dato. Har prøvet at kode noget, som jeg håber virker. Det må I så svare på om det kan bruges?

Scriptet:

<?

$maaned = date("F");
$maaned = str_replace("January", "Januar", $maaned);
$maaned = str_replace("February", "Februar", $maaned);
$maaned = str_replace("March", "Marts", $maaned);
$maaned = str_replace("April", "April", $maaned);
$maaned = str_replace("May", "Maj", $maaned);
$maaned = str_replace("June", "Juni", $maaned);
$maaned = str_replace("July", "Juli", $maaned);
$maaned = str_replace("August", "August", $maaned);
$maaned = str_replace("September", "September", $maaned);
$maaned = str_replace("October", "Oktober", $maaned);
$maaned = str_replace("November", "November", $maaned);
$maaned = str_replace("December", "December", $maaned);

$ip = $_SERVER["REMOTE_ADDR"];
$tid = time();
$dato = date("d.");
$dato2 = date("- Y / H:i:s");
$sti = $_SERVER["PHP_SELF"];

$check_dato = date("- Y");

$db = mysql_connect("**********", "********", "*********");
mysql_select_db("************", $db);

$query = mysql_query("SELECT * FROM `Total_unik_count` WHERE
`ip` LIKE '$ip' ORDER BY id DESC LIMIT 0, 1") or die(mysql_error());
$count_ip = mysql_num_rows($query);

if ($count_ip != 0) {

$dato_check = $_POST['dato'] != date("$dato $maaned $check_dato");

if ($dato_check) {
mysql_query("INSERT INTO Total_unik_count (ip, tid, dato, sti)
VALUES ('$ip','$tid','$dato $maaned $dato2','$sti')");
}
} else {
mysql_query("INSERT INTO Total_unik_count (ip, tid, dato, sti)
VALUES ('$ip','$tid','$dato $maaned $dato2','$sti')");
}

$foresp = mysql_query("SELECT * FROM Total_unik_count WHERE
dato = {date("$dato $maaned $check_dato")}");
$counter_unik = mysql_num_rows($foresp);

$total_counter_unik = $counter_unik + 0; // Hvor tælleren
starter med at tælle fra

echo "<i>$total_counter_unik</i>";

?>

Er det helt forkert. Skal man lave sådanne tællere på helt andre måder?

Mange tak for dit svar! :o)

Mvh. Lasse Jensen
Avatar billede haren Nybegynder
12. april 2005 - 14:36 #1
Jeg kan nok ikke hjælpe dig med det - men dette vil give parse error:

if ($dato_check) {
mysql_query("INSERT INTO Total_unik_count (ip, tid, dato, sti)
VALUES ('$ip','$tid','$dato $maaned $dato2','$sti')");
}
} else {
mysql_query("INSERT INTO Total_unik_count (ip, tid, dato, sti)
VALUES ('$ip','$tid','$dato $maaned $dato2','$sti')");
}

Der er en tuborgklamme formeget. Derudover forstår jeg ikke hvad den if sætning skal gøre godt for, den den gør jo det samme lige meget om den er "TRUE" eller "FALSE".
Avatar billede webweaver Praktikant
12. april 2005 - 19:31 #2
Nej Haren du ser forkert. Det vil ikke give nogen "Parse error" da der faktisk ikke er en tuborg klamme for meget. Du ser også forkert med hensyn til det med TRUE og FALSE. Den vil ikke gøre det samme. Hvis du kigger vil du opdage at "else" tilhører den første if sætning, og ikke den anden :P

Men der vil derimod stadig komme en "Parse error", dog på denne her linie:

$foresp = mysql_query("SELECT * FROM Total_unik_count WHERE dato = {date("$dato $maaned $check_dato")}");

Håber du/I så kan sige hvordan den linie skal se ud, for den er rigtig?

Mange tak :D

Mvh. Lasse Jensen
Avatar billede haren Nybegynder
13. april 2005 - 15:09 #3
Rødmer. Hvor pinligt.
Skal nok kigge på det.. senere..
Avatar billede webweaver Praktikant
14. april 2005 - 09:02 #4
Hehe, det går nok. :P I andre skal også være velkomne til at kigge på det. :o)

På forhånd tak :D

Mvh. Lasse Jensen
Avatar billede haren Nybegynder
14. april 2005 - 14:15 #5
Jeg kan ikke bedømme om det virker eller ej, da jeg ville have lavet det på en anden måde. Men jeg kan da godt svarer dig på parse error.

$foresp = mysql_query("SELECT * FROM Total_unik_count WHERE dato = {date("$dato $maaned $check_dato")}");

=

$foresp = mysql_query("SELECT * FROM Total_unik_count WHERE dato = '{date("$dato $maaned $check_dato")}'");
Avatar billede webweaver Praktikant
14. april 2005 - 22:16 #6
Hej igen Haren.

Det gør desværre ingen forskel, om jeg skriver det på den ene måde eller den anden. Parse error forbliver der...
Avatar billede webweaver Praktikant
15. april 2005 - 03:31 #7
Jeg har nu selv løst problemet og fået koden til at virke :D Ellers tak for den hjælp I kom med...

Mvh. Lasse Jensen
Avatar billede haren Nybegynder
15. april 2005 - 13:01 #8
Kan du fortælle hvad du ændrede?
Avatar billede webweaver Praktikant
15. april 2005 - 16:21 #9
Jo det kan jeg da godt :P

Linien der gav parse error, lavede jeg om til:

$dateformat = sprintf('%s', $dato);               
                    $query = sprintf('SELECT * FROM Total_today_counter WHERE dato>=\'%s\'', $dateformat);
                    $foresp = mysql_query($query) or die(mysql_error());


Det virker...

Udover det var der lige nogle småting der skulle udskiftes uden større betydning.

Mvh. Lasse Jensen
Avatar billede haren Nybegynder
16. april 2005 - 16:36 #10
Okay.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester