Autor Zpráva
Musilda
Profil
Dobrý den

Snažím se studovat PHP a zakoupil jsem si knihu PHP5, MySQL, Apache vytváříme webové aplikace. V té je rozepsán postup na vytvoření eshopu. Tam jsem narazil na problém s vytvořením nákupního košíku. Autor vytváří tzv. dočasnou tabulku, kterou tak sice nazývá, ale create temporary table nepoužívá. Vytvoří tabulku pro košík, kterou pak použije pro výpis košíku a objednávku. Nemá ale nijak ošetřeno odstranění tabulky.

Našel jsem několik článků, které popisují vytvoření dočasné tabulky, ale nepovedlo se mi to rozchodit.
Vytvoření tabulky mám takto

$vytv_docasne="CREATE TABLE IF NOT EXISTS $tab_docasna (id INT(11) NOT NULL AUTO_INCREMENT,
id_relace VARCHAR(255),
kod INT(10) NOT NULL,
nazev_vyrobku VARCHAR(255) NOT NULL,
vyrobce VARCHAR(255) NOT NULL,
kratky_popis VARCHAR(255) NOT NULL,
moc INT(10) NOT NULL,
ks INT(10) NOT NULL,
PRIMARY KEY(id))";
$vysledek=mysql_query($vytv_docasne)or die (mysql_error());

Když se pokusím vypsat košík, hlásí chybu: tab_docasna neexistuje.
Také mne napadlo ukládat položky košíku do SESSION jako pole ( což nevím zda by fungovalo ).

Snad se zde najde někdo kdo mi poradí s postupem :-). Jde mi spíše o pochopení mechanizmu.
Mastodont
Profil
CREATE TABLE IF NOT EXISTS $tab_docasna


Ty nevytváříš tabulku "tab_docasna", ale tabulku, jejíž název je uložen v proměnné $tab_docasna. A v proměnné $tab_docasna je co?
Musilda
Profil
Proměná $tab_docasna by měla obsahovat název tabulky, vygenerovaný pro každého zákazníka. Zatím to mám nastaveno na přihlášeného user a na nepřihlášeného host. Takže to hlásí tabulka host neexistuje. To že nevytvářím tabulku tab_docasna samozřejmě vím :-).
Mastodont
Profil
Takže to hlásí tabulka host neexistuje.
Tak náš příště nemať hlášením
hlásí chybu: tab_docasna neexistuje.
BetaCam
Profil
Musilda
Autor vytváří tzv. dočasnou tabulku, kterou tak sice nazývá, ale create temporary table nepoužívá.

To je celkem logické kdyby používal TEMPORARY TABLE tak by se mu tabulka ztratila jakmile by se ukončilo spojení s DB.

Osobmě bych ti doporučil košík ukládat do SESSION to tvé řešení s tabulkami mi přijde né zrovna vtipné.
joe
Profil
Ukládání košíku do sessions je daleko lepší než do db a i výhodnější.
Pokud to stačí, vhodné uložení je jako pole

array(
id => cena,
id => cena,
id => cena,
);

Spočítáš rychle cenu a počet položek v košíku. Pro podbornější info vždy vytýhneš data z db.

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: