Starší komentáře ke článku: Jednoduchý internetový obchod v PHP 1.

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Jiří Kocman

Datum vložení: 9.11.2001 10:19:08

Misto autorova:
$database = Mysql_Query(" SQL DOTAZ ");
if (!$database):
chybova_zprava();
endif;

Bych pouzil o neco uspornejsi kod:

$database = Mysql_Query(" SQL DOTAZ ") OR DIE(chybova_zprava());

Avatar

Autor komentáře: Ondra Marek

Datum vložení: 14.11.2001 8:07:37

Funkci DIE nepouzivam, protoze ukonci skript php okamzite, bez moznosti korektne se odhlasit od databaze. Podle me nejlepsi zpusob jak zakomponovat vypisovani chybove zpravy do skriptu je pouziti cyklu do - while, ve kterem se provedou vsechny operace s databazi, v pripade, ze dojde k chybe v komunikaci s databazi, se pouzije funkce chybova_zprava() v kombinaci s prikazy if a break, coz umozni preruseni cyklu a nasledne pouziti funkce MySQL_Close(), ktera me odhlasi od databaze. Takovyto zpusob alespon pouzivam v dalsich skriptech sveho on-line obchodu.
S pozdravem Ondra

Avatar

Autor komentáře: Jiří Kocman

Datum vložení: 14.11.2001 10:08:15

Zdravim,

s timto tvrzenim ze die neukonci funkcnost skriptu nesouhlasim! Pokud napisete do die argument, konkretne nazev funkce, vykona se tato funkce. A ta muze obsahovat v podstate cokoli, taze i korektni ukonceni skriptu a html vystupu. Pouzivam to v podstate pokazde. Pokud pracuji s databazi, snazim se vsechny selecty a vubec praci s databazi provadet jeste driv, nez dojde k nejakemu vystupu - ruzne seznamy apod., ktere se normalne echuji si muzu ulozit do promenne a az po ukonceni a zavreni spojeni s db teprve vyechovat ziskana data. Tim muzu v pripade chyby zajistit bezproblemovy redirect na jinou stranku, ktera muze obsahovat informace ze doslo k chybe nebo to vyresit pomoci funkce zarazene napriklad do knihovny funkci pro dany site. Osobne si myslim ze predhazovani chybovych hlaseni beznemu uzivateli neni vhodne.

Avatar

Autor komentáře: Ondra Marek

Datum vložení: 14.11.2001 12:08:30

Taky zdravim,
jasne, zalezi, co je obsahem funkce, v tomto pripade funkce chybova_zprava(). Pokud do te funkce dam misto chybove hlasky echo ve smyslu, ze doslo k poruse v komunikaci s databazi a pouziji svuj oblibeny cyklus do-while s prikazem break po splneni podminky volani funkce, pri prvnim volani funkce dojde k vypsani tohoto echa (pouze jednou) a k preruseni cyklu. Cili uzivateli zadne chybove hlasky predhazovany nebudou. Bude mu predhazovano presne to, co bude chtit tvurce skriptu a navic tolikrat, kolikrat bude chtit (pouzitim nebo nepouzitim prikazu break). Myslim, ze tento zpusob neni v nicem horsi nez pouziti funkce DIE.
Ondra

Avatar

Autor komentáře: Jiří Kocman

Datum vložení: 14.11.2001 12:55:08

Souhlas. Jde o zvyk a osobni preference. Cyklus do - while nepouzivam... pouzivam pouze while.

Avatar

Autor komentáře: Petr Zahradnicek

Datum vložení: 9.11.2001 15:11:45

Pisete ze pro eshop jste vybral mysql+php+personal webserver. Jak potom budete resit pod windows mysql a korektni razeni cestiny, kdyz mysql podporuje pouze iso latin2 a zapnuti w1250 je z duvodu nutnosti kompilace prakticky nemozne. Mate nejake elegantni resteni tohoto problemu a nebo budete vse konvertovat tam a zpatky nejakou funkci v php (coz me neprijde moc vhodne)?

Avatar

Autor komentáře: Ondra Marek

Datum vložení: 14.11.2001 8:39:30

Zaznamy obsahujici ceskou diakritiku musite do MySQL importovat z textoveho souboru. Potom sice, pokud si nechate vypsat importovane zaznamy pres prikazovy radek, se tyto zaznamy zobrazi s chybnou diakritikou, avsak pri vystupu pres php skript se v prohlizeci jiz zobrazi spravne. Funguje to i pri vyhledavani zaznamu z databaze (klauzule where), tj. pokud pri vyhledavani pouziji ceskou diakritiku (musim mit ale na strance kodovani windows-1250), dostanu pres skript php opet spravny vysledek. Zadnou funkci php na konverzi kodovani tedy nemusim pouzit. Teoreticke vysvetleni neznam, hlavne, ze to funguje.
S pozdravem Ondra

Avatar

Autor komentáře: Airwolf

Datum vložení: 13.6.2002 18:49:54

no lepsí pouzit ob_start() k cacheovani vystupu a pokud je potreba presmerovat tak pak nejsou problemy s Header

Avatar

Autor komentáře: ivis

Datum vložení: 18.3.2003 1:43:07

V článku se hovoří o příkladu v souboru sortiment.txt - není už náhodou smazán? Pravda, článek čtu po 1 a 1/4 roce od jeho publikování, avšak sortiment.txt hledám marně. A přiznám, že jsem ho nenašel ani v dílech následujících. Tam jsem se k dílu pana Marka vyjádřil.
Je od něho milé, že nutí čtenáře k zamyšlení, jako učitel mu však musím vytknout, že když hovoří o příkladu, bylo by vhodné jej opravdu uvést. Dovedu si představit údiv na jeho zamyšlené tváři, kdyby se jeho učitel (například matematiky) odvolával ve svém výkladu na příklad, který vlastně vůbec žactvu nepředvedl.

Jinak řečeno, hodnotím toto dílko za mlácení prázdné slámy. A tuším, takových máme dost, stačí nahlédnout za zdi Parlamentu či Senátu, stačí kolikrát i obecní úřady. Přiznám v tuto chvíli, že lituji ztraceného času.

Avatar

Autor komentáře: chemikus

Datum vložení: 11.1.2004 11:31:44

Souhlas. Jestliže v článku říkáte, ať se podívají na ukázkový soubor, měl by ten soubor být někde napsán. Já jsem úplná lama w těchto wěceh, tak ani newím, jak by měl tes soubor vypadat...

Avatar

Autor komentáře: Jozef

Datum vložení: 22.6.2005 12:53:13

Sme na tom stejne, hodil by se aspon vzorek.

Avatar

Autor komentáře: Jarda

Datum vložení: 16.1.2007 9:38:12

Ten příklad sortiment.txt by se opravdu hodil. Já se to zrovna pokouším vytvořit podle toho vzoru, ale někde v tech atributech asi dělal chyby, protože se mi data do tabulky nechtějí načíst. Kdybych viděl předlohu hned bych věděl kde dělám chybu. Jinak k tomu, ze se jedna o mlácení prázdné slámy, tak s tím zásadně nesouhlasím. Tohle může napsat jedině nějaký ignorant, který už má PHP v malíčku. Chápu, ze pro něj to jsou jednoduché věci, a čtení tohoto článku, ztráta času, jak uvádí. Tak potom ať ho nečte. Já se s PHP momentálně seznamuji. A tenhle přiklad, kde je vše přehledně vysvětleno, mohu všem začatečníkům s PHP jen doporučit.

Avatar

Autor komentáře: Kubas

Datum vložení: 4.9.2005 8:16:46

Používám lokální server [b]APACHE[/b] a použil jsem výše uvedený kód. Ale když jsem tento script spustil tak se mi oblevila [b]PARSE ERROR na řádku 38(u ENCLOSED BY "" ";)[/b]. Co s tím má udělat.

Zpět na článek | Úvodní stránka Interval.cz