Autor Zpráva
Peti
Profil *
Zdravím... chci si udělat archiv článků, aby se mi vypsal měsíc a u toho
příslušný počet článků, ale nefunguje mi to, nejspíš na to jdu špatně, proto by
mě zajímalo, jak tohle děláte vy...

zkoušel jsem to nějak takhle:
$sql_leden = mysql_query("select id, DATE_FORMAT(`pridano`, '%m') pridano
from clanky where pridano = 1");
$pocet = mysql_num_rows($sql_leden);

echo 'Leden ('.$pocet.')<br />';
BetaCam
Profil
Můžeš to udělat třeba takhle :

$sql_leden = mysql_query("select count(pridano) AS pocet FROM clanky WHERE DATE_FORMAT(pridano, '%m') = 1");
$result = mysql_fetch_object($sql_leden);

echo 'Leden ('.$result->pocet.')<br />';


ale způsobů jak to udělat je nespočet.
Peti
Profil *
zkoušel jsem tenhle zápis ale pokaždé mi to vypíše 0 článků...:(
Alphard
Profil
%m vrací dvouciferné číslo, takže where == 01 nebo použít %c

jestli to chceš pro více měcísů, bude se hodit group
Peti
Profil *
Alphard
tak kdyz mam dotaz
$sql_unor = mysql_query("select count(pridano) AS pocet FROM clanky WHERE DATE_FORMAT(pridano, '%m') == 02");
$pocet = mysql_fetch_object($sql_unor);

echo 'Únor ('.$result->pocet.')<br />';


hodi mi to error: Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in D:\web\www\blog\archiv.php on line 19

...a když zkusím:
$sql_leden = mysql_query("select count(pridano) AS pocet FROM clanky WHERE DATE_FORMAT(pridano, '%c') = 1");
$result = mysql_fetch_object($sql_leden);

echo 'Leden ('.$result->pocet.')<br />';


tak taky nic....
Alphard
Profil
omlouvám se, utekl mi operátor porovnání z jiné syntaxe (==), = má být jen jedno
zápis 02 zkus dát do apostrofů '02'
jestli to vypíše chybu, vypiš si mysql_error()

jinak nevím, teď jsem to zkusil jde mi to

mysql> select * from p6;
+----+---------------------+
| id | cas                 |
+----+---------------------+
|  1 | 2008-03-15 16:10:38 |
|  2 | 2008-03-15 16:10:41 |
+----+---------------------+
2 rows in set (0.00 sec)

mysql> select count(*) from p6 where date_format(cas, '%c') = 3;
+----------+
| count(*) |
+----------+
|        2 |
+----------+
1 row in set (0.00 sec)


jen pro jistotu, má ten sloupec pridano snad vhodný datový typ (časový), já mám na case datetime
Peti
Profil *
No tak jsem si tam zkusil dat mysql_error().... a nevypsalo se mi nic, takze tam nejspis zadna chyba nenastala... sloupec je datoveho typu DATE
BetaCam
Profil
Alphard

%m vrací dvouciferné číslo, takže where = 01 nebo použít %c

Ano správně by tam mělo být %c nic méně moje mysql sebere i

DATE_FORMAT(pridano, '%m') = 1
002 = 2
00000003 = 3
0004 = 00000004


prostě ty nuly na začátku uplně ignoruje.
ninja
Profil
neni jednodussi nez date_format:

SELECT COUNT(*) FROM clanky WHERE MONTH(pridano) = 2;
nightfish
Profil
No tak jsem si tam zkusil dat mysql_error(
echo mysql_error();
Peti
Profil *
vyzkousel jsem dalsi verzi....
$sql_brezen = mysql_query("SELECT
COUNT(id) pocet,
MONTH(pridano) mesic,
YEAR(pridano) rok
FROM clanky
WHERE pridano = 1
GROUP BY rok, mesic
ORDER BY rok DESC, mesic DESC");
$pocet = mysql_num_rows($sql_brezen);
echo mysql_error();
echo 'Březen ('.$pocet.')<br />';



ale porad mi to nic nevypisuje... teda - vypisuje to 0 clanku.... i kdyz tam jsou... mysql_error nic nepise
krteczek_jinde
Profil *
skus to takhle:
$d = "mysql_query("SELECT COUNT(id) AS pocet,..";
echo $d;
if($v = mysql_query($d, $spojeni))
{
  $p = mysql_num_rows($v);
  if($p > 0)
    {
        //máme výsledky
    }
  else
    {
       echo 'nic nebylo nalezeno';
    }
}
else
{
 echo mysql_error();
}
Peti
Profil *
hm, tak nyni ten kod vypada takhle:
$sql_brezen = mysql_query("SELECT
COUNT(id) AS pocet,
MONTH(pridano) mesic,
YEAR(pridano) rok
FROM clanky
WHERE pridano = 1
GROUP BY rok, mesic
ORDER BY rok DESC, mesic DESC");

echo $sql_brezen;

if($v = mysql_query($sql_brezen))
{
  $p = mysql_num_rows($v);
  if($p > 0)
    {
     while($zaznam=mysql_fetch_array($sql_brezen)) {
       echo $zaznam["id"];
     }   //máme výsledky
    }
  else
    {
       echo 'nic nebylo nalezeno';
    }
}
else
{
 echo mysql_error();
}


a v prohlizece mi to vypisuje nasledujici hlasku:Resource id #11You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #11' at line 1Duben (0)
krteczek_jinde
Profil *
a jak vypadá ten vypsaný sql dotaz?
krteczek_jinde
Profil *
sorry!!!
$d = "mysql_query("SELECT COUNT(id) AS pocet,.."; /// špatně!!!
$d = "SELECT COUNT(id) AS pocet,..";
Peti
Profil *
porad nic.... jak to myslis s tim jak vypada ten vypsany sql dotaz?
krteczek_jinde
Profil *
no pastni tu ten tvuj sql dotaz měl by se ti vypsat před provedením v databázi
Peti
Profil *
SELECT COUNT(id) AS pocet, MONTH(pridano) mesic, YEAR(pridano) rok FROM clanky WHERE pridano = 1 GROUP BY rok, mesic ORDER BY rok DESC, mesic DESCnic nebylo nalezeno

tohle... nechapu jaktoze nebylo nic nalezeno... vzdyt ty clanky tam na beton jsou
Alphard
Profil
WHERE pridano = 1
jestli je ve sloupci pridano datum, asi nebude 1

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: