Autor | Zpráva | ||
---|---|---|---|
Peti Profil * |
#1 · Zasláno: 15. 3. 2008, 12:01:40
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 |
#2 · Zasláno: 15. 3. 2008, 14:34:29 · Upravil/a: BetaCam
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 * |
#3 · Zasláno: 15. 3. 2008, 14:59:18
zkoušel jsem tenhle zápis ale pokaždé mi to vypíše 0 článků...:(
|
||
Alphard Profil |
#4 · Zasláno: 15. 3. 2008, 15:27:24
%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 * |
#5 · Zasláno: 15. 3. 2008, 15:44:13
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 |
#6 · Zasláno: 15. 3. 2008, 16:16:04
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 * |
#7 · Zasláno: 15. 3. 2008, 17:00:18
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 |
#8 · Zasláno: 15. 3. 2008, 17:30:59 · Upravil/a: BetaCam
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 |
#9 · Zasláno: 15. 3. 2008, 17:42:47
neni jednodussi nez date_format:
SELECT COUNT(*) FROM clanky WHERE MONTH(pridano) = 2; |
||
nightfish Profil |
#10 · Zasláno: 15. 3. 2008, 18:10:26
No tak jsem si tam zkusil dat mysql_error(
echo mysql_error(); |
||
Peti Profil * |
#11 · Zasláno: 15. 3. 2008, 19:37:21
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 * |
#12 · Zasláno: 15. 3. 2008, 21:26:25
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 * |
#13 · Zasláno: 15. 3. 2008, 21:47:08
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 * |
#14 · Zasláno: 15. 3. 2008, 22:15:17
a jak vypadá ten vypsaný sql dotaz?
|
||
krteczek_jinde Profil * |
#15 · Zasláno: 15. 3. 2008, 22:16:51
sorry!!!
$d = "mysql_query("SELECT COUNT(id) AS pocet,.."; /// špatně!!! $d = "SELECT COUNT(id) AS pocet,.."; |
||
Peti Profil * |
#16 · Zasláno: 15. 3. 2008, 22:39:59
porad nic.... jak to myslis s tim jak vypada ten vypsany sql dotaz?
|
||
krteczek_jinde Profil * |
#17 · Zasláno: 15. 3. 2008, 22:44:15
no pastni tu ten tvuj sql dotaz měl by se ti vypsat před provedením v databázi
|
||
Peti Profil * |
#18 · Zasláno: 15. 3. 2008, 22:50:45
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 |
#19 · Zasláno: 15. 3. 2008, 22:53:52
WHERE pridano = 1
jestli je ve sloupci pridano datum, asi nebude 1 |
||
Časová prodleva: 16 let
|
0