Ostatní témata (Off Topic témata) : phpRS Fórum
Máte problém s konfigurací počítače? Hledáte nejlepší webhosting pro vaši aplikaci? Nevíte si rady s nějakým zajímavým programátorským oříškem? Týká se dotaz fóra? ... Pokud ano, tak je toto diskuzní fórum určeno právě vám.
phpRS - redakční a informační systém
Jít na stránku:  12Další
Aktuální stránka:1 z 2
Plugin denní info
Zaslán uživatelem/kou: Dawe (IP adresa zaznamenána)
Datum: 2006-03-11, 19:51

Po dlouhym přemlouvání jsem se odhodlal do tvorby nějakého pluginu.
Zvolil jsem si věc co potřebuju (teda spíš chci) a to takovej "zpravodaj" o tom co se kdy stalo kokrétní den.
Pro představu je toněco jako první blok vpravo (On This Day) na týhle stránce - [http://bkportal.com/]

Prohledal jsem pár pluginů, vycuc a upravil jejich kód (hlavně z pluginu připravované články) a skusil

<?php

include_once('config.php');

function Warnews()
{
// pokud nic v DB neni tak se blok nezobrazí
$dobloku = '';

// dnesni datum
$dnesnidatum = Date('Y-m-d');

// vytah dat z databaze
$hledani = mysql_query(' SELECT misto,rok,datum,zaznam
FROM '.$GLOBALS['rspredpona'].'warnews
WHERE datum = \''.$dnesnidatum.'\'
ORDER BY rok
$GLOBALS['dbspojeni']);

// kolik je zaznamu
$pocetnov = mysql_num_rows($hledani);

if ($pocetnov > 0)
{
for ($pom = 0; $pom < $pocetnov; $pom++) // tohle je řádek kde moc nevim co znamená
{
$datanov = mysql_fetch_assoc($hledani); // nacteni dat
$dobloku .= '<b>'.$datanov['misto'].','.$datanov['datum'].' '.$datanov['rok'].'</b><br />'.$datanov['zaznam'].'<br />';
}

// zobrazeni menu
switch ($GLOBALS['vzhledwebu']->AktBlokTyp()):
case 1: Blok1($GLOBALS['vzhledwebu']->AktBlokNazev(),$dobloku); break;
case 2: Blok2($GLOBALS['vzhledwebu']->AktBlokNazev(),$dobloku); break;
case 3: Blok3($GLOBALS['vzhledwebu']->AktBlokNazev(),$dobloku); break;
case 4: Blok4($GLOBALS['vzhledwebu']->AktBlokNazev(),$dobloku); break;
case 5: Blok5($GLOBALS['vzhledwebu']->AktBlokNazev(),$dobloku); break;
default: Blok1($GLOBALS['vzhledwebu']->AktBlokNazev(),$dobloku); break;
endswitch;
}
}
?>


Tohle jsem vložil do pluginu a naistaloval.
Bohužel to hází errory, a já i po několika hodinách nevim čim by to mohlo být.Skoušel sem hledat na foru i jinde a sice párkrát se tu ty problémy objevily, ale nikdy nikdo nenapsal jestli a případně jak to vyřešil :-(
Neví někdo pls kde může bejt chyba ?

Warning: generujsloupecstopfce(plugin/news/wns.php): failed to open stream: No such file or directory in /u2/www/ww2-memorials_com/data/www/trlayout.php on line 243

Warning: generujsloupecstopfce(): Failed opening 'plugin/news/wns.php' for inclusion (include_path='.:/usr/lib/php:') in /u2/www/ww2-memorials_com/data/www/trlayout.php on line 243

Warning: call_user_func(Warnews): First argument is expected to be a valid callback in /u2/www/ww2-memorials_com/data/www/trlayout.php on line 244

Dawe
[http://ww2-memorials.com]
PHP antitalent

Re: Plugin denní info
Zaslán uživatelem/kou: smiko (IP adresa zaznamenána)
Datum: 2006-03-11, 20:02

prva chyba a druha chyba a tretia je s tym spojena

plugin/news/wns.php neexsituje alebo je zla adresa na subor

a este ti vysvetlim toto:

for ($pom = 0; $pom < $pocetnov; $pom++)

prva premenna urcuje pociatocnu hodnotu cize v tomto pripade 0
$pom < $pocetnov je klasicky porovnavaci operator
$pom++ priradi cislo o jedno vacsie

cize to od nuly (0) bude pripocitavat dovtedy kym bude $pom mensia ako $pocetnov

ale tento zapis je velmi neefektivny a neprehladny. vsetko co sa tyka s DB je najlepsie pouzivat while()

____________________
smiko.host.sk/phprs/

Re: Plugin denní info
Zaslán uživatelem/kou: Dawe (IP adresa zaznamenána)
Datum: 2006-03-11, 20:37

Super díky, první chybu už sem odstranil, měl sem blbě pojmenovanou složku takže to nepoznalo cestu.
Teď se budu muset poprat s tim že mi to hází unexpected T_STRING na lajně 18 ( $GLOBALS['dbspojeni']); )
a když ji odstranim tak mi to hází unexpected ">" na lajně 30 :-))

To bude ještě sranda, ale díky za info.

Dawe
[http://ww2-memorials.com]
PHP antitalent

Re: Plugin denní info
Zaslán uživatelem/kou: smiko (IP adresa zaznamenána)
Datum: 2006-03-11, 22:47

to bude neukonceny, nespravne definovany zapis...najcastejsia chyba

____________________
smiko.host.sk/phprs/

Re: Plugin denní info
Zaslán uživatelem/kou: Dawe (IP adresa zaznamenána)
Datum: 2006-03-12, 11:13

moc díky za pomoc už mi to fachá !!
teď jen splácnou administraci a je to !
bylo to v chybějcí ',

WHERE datum = \''.$dnesnidatum.'\'
ORDER BY rok ',
$GLOBALS['dbspojeni']);



Dawe
[http://ww2-memorials.com]
PHP antitalent



Celkem upraveno 1×. Poslední úprava Dawe v 12.03.2006 11:19.

Re: Plugin denní info
Zaslán uživatelem/kou: smiko (IP adresa zaznamenána)
Datum: 2006-03-12, 11:26

pokial sa da, vyuzivaj SQL prikazy, je to rychlejsie.

WHERE datum = NOW()

____________________
smiko.host.sk/phprs/

Re: Plugin denní info
Zaslán uživatelem/kou: smiko (IP adresa zaznamenána)
Datum: 2006-03-12, 13:20

inac, nieco take uz tusim existuje. dal by sa na to pouzit plugin Info spravy :) ked chces cerpaj aj z toho.

zaroven tema prenesena do Off topic

____________________
smiko.host.sk/phprs/

Re: Plugin denní info
Zaslán uživatelem/kou: Dawe (IP adresa zaznamenána)
Datum: 2006-03-12, 17:27

Ok mrknu na něj a něco z toho vytáhnu, jde mi hlavně o administraci, ta mi teď dělá trošku problémy, jinak část která ti vypisuje události je už hotová prakticky hotová.

Dawe
[http://ww2-memorials.com]
PHP antitalent

Re: Plugin denní info
Zaslán uživatelem/kou: MirekS (IP adresa zaznamenána)
Datum: 2006-03-12, 18:23

ja bych ten for cyklus vubec nepouzil a napsal bych to asi takto (jak uz radil smiko)

misto:
$pocetnov = mysql_num_rows($hledani);

if ($pocetnov > 0)
{
for ($pom = 0; $pom < $pocetnov; $pom++) // tohle je řádek kde moc nevim co znamená
{
$datanov = mysql_fetch_assoc($hledani); // nacteni dat
$dobloku .= '<b>'.$datanov['misto'].','.$datanov['datum'].' '.$datanov['rok'].'</b><br />'.$datanov ['zaznam'].'<br />';
}
}


tohle:
while ($datanov = mysql_fetch_assoc($hledani)) {
$dobloku .= '<b>'.$datanov['misto'].','.$datanov['datum'].' '.$datanov['rok'].'</b><br />'.$datanov ['zaznam'].'<br />';
}


a pak v podmince je uplne zbytecne ORDER BY rok , kdyz se vybira jen jeden den

EDIT:
chybala ti tam hranata zatvorka



Celkem upraveno 1×. Poslední úprava smiko v 12.03.2006 18:47.

Re: Plugin denní info
Zaslán uživatelem/kou: Dawe (IP adresa zaznamenána)
Datum: 2006-03-12, 20:13

no můžu to skusit, ale to order by rok je tam schválně, protože ti to může ukázat co se stalo třeba 6.5. 1969 a zároveň co se stalo 6.5. 1972 ,-)

Dawe
[http://ww2-memorials.com]
PHP antitalent

Re: Plugin denní info
Zaslán uživatelem/kou: MirekS (IP adresa zaznamenána)
Datum: 2006-03-12, 20:18

Dawe napsal/a:
-------------------------------------------------------
> ale to order by rok je tam
> schválně, protože ti to může ukázat co se stalo
> třeba 6.5. 1969 a zároveň co se stalo 6.5. 1972
> ,-)
>
> Dawe
>
>
> PHP antitalent

no to asi tezko, kdyz je tam podminka: WHERE datum = \''.$dnesnidatum.'\'
to aby to ukazalo vse v danem dni, bez ohledu na rok, by znamenalo tu podminku napsat trochu jinak

Re: Plugin denní info
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2006-03-12, 20:18

Dawe napísal/a:
-------------------------------------------------------
> no můžu to skusit, ale to order by rok je tam
> schválně, protože ti to může ukázat co se stalo
> třeba 6.5. 1969 a zároveň co se stalo 6.5. 1972
> ,-)
>

WHERE datum=now() obmedzí výslednú sadu záznamov na jeden deň, takže následné triedenie záznamov podľa poľa ROK nebude mať na poradie záznamov žiadny vplyv, čím sa stáva zbytočným.



Re: Plugin denní info
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2006-03-12, 20:20

Jedine že by so mnechápal čo to celé má robiť :) ...ale z názvov stĺpcov tabuliek to vyzerá naozaj tak, že je tam to triedenie len na spomalenie dotazu ;)

Re: Plugin denní info
Zaslán uživatelem/kou: Dawe (IP adresa zaznamenána)
Datum: 2006-03-12, 20:33

nekamenujte mě, já se v php ještě moc neorientuju :)
mě to i s tim WHERE datum = \''.$dnesnidatum.'\' fungovalo, teď sem tam dal to NOW() a funguje to taky, jen se mrkněte na [http://www.ww2-memorials.com] úplně vlevo dole je blok kde se vypíšou dva záznamy který sem nacpal do DB a to

Místo: Vim
Datum: 2006-03-12
Rok: 1940
Záznam: Fakt netušim

Místo: Vim
Datum: 2006-03-12
Rok: 1942
Záznam: Fakt netušim

takže to celý vypadá:

<hlavička bloku>
_________________
Vim,2006-03-12 1940
Fakt netu&#154;im
Vim,2006-03-12 1942
Fakt netu&#154;im
_________________
<patička bloku>

A o přesně tohle mi jde, aby to zobrazovalo
Místo, datum rok
záznam

Dawe
[http://ww2-memorials.com]
PHP antitalent



Celkem upraveno 1×. Poslední úprava Dawe v 12.03.2006 20:34.

Re: Plugin denní info
Zaslán uživatelem/kou: smiko (IP adresa zaznamenána)
Datum: 2006-03-12, 21:06

ak dobre chapem, tak ty chces vypisovat podla datumu co sa v ktory den udialo vtedajsieho roku, dobre hadam ? :)

tak dotaz bude vyzerat takto

$hledani = mysql_query("SELECT misto, rok ,DATE_FORMAT(datum,'%e.%c') AS den,zaznam FROM ".$GLOBALS['rspredpona']."warnews WHERE datum = CURRENT_DATE()",$GLOBALS['dbspojeni']);

while ($datanov = mysql_fetch_assoc($hledani)) {
$dobloku .= '<strong>'.$datanov['misto'].','.$datanov['den'].' '.$datanov['rok'].'</strong><br />'.$datanov ['zaznam'].'<br />';
}

EDIT:
vsimol som si, ze datum zaznamenavas v tvare RRRR-MM-DD na to pouziva CURRENT_DATE() a nie NOW() ako som predtym napisal

____________________
smiko.host.sk/phprs/



Celkem upraveno 1×. Poslední úprava smiko v 12.03.2006 21:07.

Re: Plugin denní info
Zaslán uživatelem/kou: MirekS (IP adresa zaznamenána)
Datum: 2006-03-12, 21:14

takze on rok, je tedy dalsi samostany sloupecek v tabulce
pak je to tedy dobre, ale je otazkou, proc je to takhle, prijde mi to divny

co znamena to datum a co ten rok?

Re: Plugin denní info
Zaslán uživatelem/kou: Dawe (IP adresa zaznamenána)
Datum: 2006-03-12, 21:28

Pa3k: přesně tak jak jsi napsal, jde mi o to, aby datum bylo jen jako dny a měsíce a rok se připojil podle údajů v DB.Ten CURRENT_DATE() jsem taky skoušel, našel sem si to v manuálu MySQL, ale nějak mi to nešlo tak sem si řek že to vyřešim pozdějc :-)

To MirekS:
No je to tak proto, protože když bych udělal datum ve formátu RRRR-MM-DD, tak by se mi vypsalo:

Praha, 2006-03-12 1955,
V roce 1955 bylo v tento den slunce.

a já potřebuju aby to vypsalo, proto tam musí být ten rok

Praha, 12-03 1955,
V roce 1955 bylo v tento den slunce.

a proto je to myslim tak jak napsal pa3k - DATE_FORMAT(datum,'%e.%c')
Díky za pomoc :)) opravim to jak napsal pa3k.

Dawe
[http://ww2-memorials.com]
PHP antitalent

Re: Plugin denní info
Zaslán uživatelem/kou: smiko (IP adresa zaznamenána)
Datum: 2006-03-12, 21:31

odovzdavam Patrikovi vsetku pomoc,ktoru do tohoto fora dava. vidiet ,ze je duchovnym otcom vsetkych prispevkov :D

Inak Dawe:
da sa to riesit aj pomocou jedneho stplca. nemusia tam byt dva. staci to vyfiltrovat iba na mesiac-den. a vsetky mesiace a dni ktore sa zhoduju ich vypise aj s pozadovanym rokom

____________________
smiko.host.sk/phprs/



Celkem upraveno 1×. Poslední úprava smiko v 12.03.2006 21:32.

Re: Plugin denní info
Zaslán uživatelem/kou: MirekS (IP adresa zaznamenána)
Datum: 2006-03-12, 21:37

no a co se stane pristi rok? to se tento udaj nema zobrazovat? nebo se vsechny ty datumy opravi aby mely pristi rok?

ja bych tam nechal jen to datum a bylo by to datum (dle prikladu) 12-03-1955
podminka by byla date_format(datum, "%m%d") = date_format(curdate(), "%m%d")
a pripadne by slo zjistit i kolik let od dane udalosti ubehlo pomoci year(curdate())-year(datum)
a ten sloupecek rok bych zcela zrusil

Re: Plugin denní info
Zaslán uživatelem/kou: smiko (IP adresa zaznamenána)
Datum: 2006-03-12, 21:39

akurat som isiel napisat riesenie. predbehol si ma :)

____________________
smiko.host.sk/phprs/

Jít na stránku:  12Další
Aktuální stránka:1 z 2


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.