webForumDet fria alternativet

Vill skriva ut dagens besökare

PHP

10 svar · 482 visningar · startad av Emil W

Medlem sedan mars 2009512 inlägg
Frågan#1

Hej alla vill skriva ut bara besökare som har registrerats idag

och här är mitt försök men har ej fått detta att fungera

$visadatum = date("y-m-d");
$result = mysql_query("SELECT * FROM ************* ORDER BY datum DESC WHERE datum == $visadatum");

vad kan felet vara ?

Medlem sedan juni 20006 031 inlägg
#2

Får du något felmeddelande?
Är det rätt format på datumet? (09-06-15)
Ta bort ena likamed tecknet och sätt ' runt datumet. (... WHERE datum = '$visadatum'" )

/red
ta också bort ORDER BY datum DESC

/tips
Skriv ut sql frågan för att se om något ser fel ut.

Medlem sedan mars 2009512 inlägg
#3

här är hela min kod

jag får detta nu Inga besökare har registrerats i dag

<?php
$con = @mysql_connect("*********","*********","********");
if(!$con)
{
die('error' . mysql_error());
}
mysql_select_db("*************", $con);

$visadatum = date("y-m-d");
$result = mysql_query("SELECT * FROM ********  WHERE datum = '$visadatum'");

$rakna = mysql_num_rows($result);

if(mysql_num_rows($result) == 0)
{
echo "Inga besökare har registrerats i dag";
}
else
{
echo "<table border='0' class='tabell' cellpadding='2'>
<th class='tabell' bgcolor='#AAAAAA'>Tid</th>
<th class='tabell' bgcolor='#AAAAAA'>Ip-adress</th>
<th class='tabell' bgcolor='#AAAAAA'>Host</th>
<th class='tabell' bgcolor='#AAAAAA'>User-agent</th>";
}

while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td bgcolor='#EEEEEE' class='tabell'><font size='2'>".$row['datum']."</font></td>";
echo "<td bgcolor='#EEEEEE' class='tabell'><font size='2'>".$row['ip_adress']."</font></td>";
echo "<td bgcolor='#EEEEEE' class='tabell'><font size='2'>".$row['host']."</font></td>";
echo "<td bgcolor='#EEEEEE' class='tabell'><font size='2'>".$row['useragent']."</font></td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
Medlem sedan juni 20006 031 inlägg
#4

Är för trött för att tänka klart, men testa att ändra till:
$result = mysql_query("SELECT * FROM ******** WHERE datum = '{$visadatum}'");

testa även att skriva ut sql frågan och se om den ser ok ut. Och du har väl några registrerade på aktuellt datum?

Medlem sedan mars 2009512 inlägg
#5

så här är datumet i fältet datum i formatet 2009-06-15 15:45

men han skriver inte ut något fast det finns besökare registerade i databasen i dag

Medlem sedan juni 20006 031 inlägg
#6

Utgår att du sparar som sträng i databasen.

Då är det inte så konstigt att du inte får ut något.
Nu jämför du datumen i olika format.
Först får du ändra där du deklarerar $visadatum

$visadatum = date("Y-m-d");

Versalt Y gör att du får årtalet med fyra siffror, t.ex 2009 istället för 09.

Men det räcker ju inte för att få någon träff, då du i databasen också sparar tiden.
Därför får du kolla med LIKE för att hitta allt som börjar med datumet.

$result = mysql_query("SELECT * FROM ********  WHERE datum LIKE '$visadatum%'");

/red
Fundera även på att använda mysql's inbyggda funktioner för datum, t.ex CURRENT_DATE()
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

Medlem sedan mars 2009512 inlägg
#7

jag får fel meddelande

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE datum LIKE '2009-06-15%'' at line 1

Medlem sedan juni 20006 031 inlägg
#8

Och hur ser din sql fråga ut?

Medlem sedan mars 2009512 inlägg
#9

SELECT * FROM ******* ORDER BY datum DESC WHERE datum LIKE '2009-06-15%'

Medlem sedan juni 20006 031 inlägg
#10

ORDER BY ska vara efter WHERE delen.
Men i det här fallet behöver du inte sortera på datum då du ändå bara hämtar ett datum.
så antingen slopar du ORDER BY eller flyttar på den.

SELECT * FROM ******* WHERE datum LIKE '2009-06-15%' ORDER BY datum DESC

eller

SELECT * FROM ******* WHERE datum LIKE '2009-06-15%'
Medlem sedan mars 2009512 inlägg
#11

Tack för hjälpen pedda

Du ger mej mycket bra hjälp

266 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)