$query_idag = "SELECT COUNT(*) FROM annonser WHERE datum='2002-09-12'";
$result_idag = mysql_query($query_idag);
echo $result_idag;
Den här koden ger resultatet
Resource id #2
Jag fattar inte varför. Har någon något tips? Vad gör jag för fel? Det borde bli 2, eftersom det finns två poster med det datumet i databasen. Datumformatet i databasen är exakt som det är skrivet i queryn...
:( deppad...
Queryn ger rätt resultat när jag kör den direkt i terminalen:
mysql> SELECT COUNT(*) FROM annonser WHERE datum='2002-09-12';
+----------+
| COUNT(*) |
+----------+
| 2 |
+----------+
1 row in set (0.00 sec)
mysql>
fattar nada...
MatteMedlem sedan aug. 20002 975 inlägg För att få fram värdet får du göra så här:
$query_idag = "SELECT COUNT(*) FROM annonser WHERE datum='2002-09-12'";
$result_idag = mysql_query($query_idag);
echo mysql_result($result_idag, 0);
Alternativt:
$query_idag = "SELECT COUNT(*) AS poster FROM annonser WHERE datum='2002-09-12'";
$result_idag = mysql_query($query_idag);
$row = mysql_fetch_array($result_idag);
echo $row['poster'];
mysql_query() ger alltså inte svaret direkt utan du måste plocka fram det på annat sätt.
Annars kan man alltid köra mysql_num_rows:
$query_idag = "SELECT * FROM annonser WHERE datum='2002-09-12'";
$result_idag = mysql_query($query_idag);
$row = mysql_num_rows($result_idag);
echo $row;
bohlinMedlem sedan mars 2000263 inlägg Att köra med mysql_num_rows är inte att rekomendera. Databasen tvingas jobba massa i onödan. Kör man en select * så hämtar man all data från tabellen i onödan, man ville ju endast ha antal poster i tabellen.
PicklezzMedlem sedan jan. 2002414 inlägg ja men om man ändå skall hämta ut alla så kan man ju använda sig av den för att slippa köra två frågor mot databasen
Den jobbar väll inte mer än om man använder SELECT COUNT (*)... måste ju fortfarande kolla igenom alla rader.
Kanske blir mindre belastning om man tar:
$query_idag = "SELECT datum FROM annonser WHERE datum='2002-09-12'";
$result_idag = mysql_query($query_idag);
$row = mysql_num_rows($result_idag);
echo $row;
Men inte vet jag... jag är en newbie ;)
Jag är inte man nog att döma vad som är rätt generellt sett, men i det här fallet är det en annonssida som hämtar alla annonser (oavsett datum) men överst också meddelar hur många som är nya för idag. Outputen blir typ:
100 annonser på annonsmarknaden. 15 nya för idag. Därför körde jag 'SELECT COUNT (*)...' på den query som kollade efter dagens datum och en vanlig 'SELECT *...' där jag hämtar annonser som sedan skrivs ut rad för rad...
om ni undrar så är datumet inte statiskt i den egentliga applikationen som i min kod ovan, utan jag körde det så igår medan jag löste det andra problemet som jag inte kunde lösa...