phpRS 2.8.x : phpRS Fórum
Toto fórum je určené výhradně k diskuzi o verzích phpRS v2.8.x.
phpRS - redakční a informační systém
Statistika - chybné načtení
Zaslán uživatelem/kou: vinny (IP adresa zaznamenána)
Datum: 2008-04-07, 13:59

Dobrý den, nevím zda jsem narazila na chybu ve skriptu nebo zda, s tím může mít něco společného verze mysql. Jedná se o skript, který načítá údaje o statistice, chvíli jsem tápala čím to může být že se mi statistika za duben nezobrazí, nakonec jsem přišla na to že když v sql dotazu změním konec intervalu 2008-04-31 na 2008-04-30 (což je opravdu den kterým duben končí) tak statistika najednou začne bezproblémů zobrazovat to co v archivu je. Může mít s tímto něco společného verze mysql nebo se opravdu jedná o chybu ve skriptu, používám přeci jen jinou syntaxi pokud hledám interval a vždy mám ošetřeno to aby se datum nedostal na hodnotu která neexistuje, takže sem se s tím ještě nesetkala.



Celkem upraveno 1×. Poslední úprava vinny v 07.04.2008 14:00.

Re: Statistika - chybné načtení
Zaslán uživatelem/kou: MirekS (IP adresa zaznamenána)
Datum: 2008-04-08, 11:35

ja tedy nevim, jestli jsem to pochopil spravne, ale pokud se jedna o astat.php, tak zde je to zjisteni posledni dne v mesici udelano (a dost silenym zpusobem), ale neni to pak aplikovano i na sql

toto bych videl jako odstrasujici kod:

$prvypkonec=31; // datumy pouzite pro doplneni tabulky
while ($rotuj):
if (checkdate($GLOBALS["prmesic"],$prvypkonec,$GLOBALS["prrok"])): $rotuj=0; else: $prvypkonec--; endif;
endwhile;

mnohem lepe se to da napsat treba takto:

$prvypkonec=date('t', mktime(0, 0, 0, $GLOBALS["prmesic"], 1, $GLOBALS["prrok"])); // datumy pouzite pro doplneni tabulky
nebo
$prvypkonec=date('t', strtotime($GLOBALS["prrok"] . '-' . $GLOBALS["prmesic"] . '-01')); // datumy pouzite pro doplneni tabulky


a proc se to nepouzije o par radku nize v

$konecdat=$GLOBALS["prrok"]."-".$GLOBALS["prmesic"]."-31"; // konec datum

je mi zahadou

Re: Statistika - chybné načtení
Zaslán uživatelem/kou: vinny (IP adresa zaznamenána)
Datum: 2008-04-08, 11:44

nechala jsem si vypsat na obrazovku konečný dotaz na databázi a mě to bohužel ukazovalo právě 2008-04-31, pro jistotu sem si zkopírovala i původní skript jestli sem neudělala někde chybu při dolaďovacích úpravách, ale stejně mi to nefungovalo, vyřešila sem to právě tímto způsobem (navíc zrovna do tohoto skriptu sem předtím nezasahovala, nebylo třeba)

$pocetdnu=Date("t", MkTime(0,0,0, $GLOBALS["prmesic"], 1, $GLOBALS["prrok"])); //zjistím si počet dnů v měsíci
$startdat=$GLOBALS["prrok"]."-".$GLOBALS["prmesic"]."-01"; // start datum
$konecdat=$GLOBALS["prrok"]."-".$GLOBALS["prmesic"]."-".$pocetdnu; // konec //nastavím konečný den v měsíci

právě na poslední řádek mi taky připadalo že nikde není uplatněná kontrola, jen nechápu proč to všem ostatním funguje :), ale jsem ráda že jsem pochopila správně kde je problém a že to není v odlišném chování verzí mysql



Celkem upraveno 1×. Poslední úprava vinny v 08.04.2008 11:46.

Re: Statistika - chybné načtení
Zaslán uživatelem/kou: MirekS (IP adresa zaznamenána)
Datum: 2008-04-08, 13:19

no ono to asi bude v odlisnem chovanim verzi ci konfigurace MySQL, mozna by bylo zajimavy vedet, jakou chybu to MySQL hlasi - tedy vratit tam to 31 a po provedeni dotazy vypsat chybu pomoci mysql_error a zaroven, jakou verzi MySQL mate

Re: Statistika - chybné načtení
Zaslán uživatelem/kou: vinny (IP adresa zaznamenána)
Datum: 2008-04-08, 14:08

Verzi mysql mám 5.0 (verze php 5.0.4), víceméně to ale testuji jen u sebe, nebo na serveru který je nastaven stejně takže zajímavý bude přehození na hosting jako vždy :), ošetření chyby je přeci jen jistota. SQL dotazy si kontroluji v mysql control center, ten chybu nevyhlásí jen je prostě výsledkem 0 řádků, ale nenadává na syntaxi ani nic jiného. mysql_error tudíž nepoužívám ale zkusila sem to

echo mysql_errno() . ": " . mysql_error(). "\n";
výsledek 0: ;

abych si byla jistá syntaxí hlášení chyb do kodu jsem pro kontrolu vložila

mysql_query("SELECT * FROM neexististujicitabulka")
s výsledkem 1146: Table 'datab.neexististujicitabulka' doesn't exist

takže se zdá že výsledek je stejný syntaxe mu vyhovuje jen prostě nevidí žádnej výsledek, docela by mě zajímalo jaký parametr v konfiguraci by mohl mít na toto vliv. Kdyby někdo věděl ráda se poučím :), víceméně webové stránky programuji vyjimečně, spíše programuji pro intranet takže ten je vždy nastaven tak jak ho nastavím já. Na to že jsem doteď nepronikla moc do šablon a objektového programování, mě i tak překvapilo jak je phprs pro ostatní programátory srozumitelný takže není problém něco upravit. Ale tahle chyba mě vyvedla z míry, protože jsem na forech nenašla stejný problém, že by někomu statistika nefungovala hned od začátku, navíc neni problém ve funkčnosti jen ve výsledném dotazu na databázi, která se tváří že dotazu rozumí, ale výsledkem je 0 záznamů.



Lituji, ale pouze registrovaní uživatelé mohou zasílat příspěvky do této sekce.
This forum powered by Phorum and designed by STaNBoSS.