Autor Zpráva
Musilda
Profil
Dobrý večer

potřebuji poradit. Už do toho koukám dvě hodiny a nejsem schopen najít chybu. Stále nemohu vytvořit tabulku.


if (isset($_POST['pridat_kosik'])) {
require ("spojeni.php");
$nova_tab="CREATE TABLE musilda (id INT (11) NOT NULL AUTO_INCREMENT,
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 )";
$vysledek=mysql_query($nova_tab);
}
joe
Profil
V tabulce musíš definovat primární klíč.
CREATE TABLE musilda (
id INT (11) NOT NULL AUTO_INCREMENT, 
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))
Musilda
Profil
Děkuji

myslel jsem si že to mohu udělat později.
Tomasds
Profil
Jestli přidání košíku znamená vytvoření nové tabulky, tak je něco hodně špatně.

Kdybych dělal shop, tak bych měl tabulku "kosiky" a do ní přidával řádky v momentu, kdy se má vytvořit košík. Potom bych měl druhou tabulku, kde by bylo
ID
ID_kosiku
ID_zbozi
pocet_kusu

Ono by to asi nestačilo, to by bylo na hlubší analýzu. Ale aby nový košík znamenal novou tabulku, to opravdu ne.
BetaCam
Profil
Tomasds
Jestli přidání košíku znamená vytvoření nové tabulky, tak je něco hodně špatně.

No ideální řešení to není ale proti gustu :)

Kdybych dělal shop, tak bych měl tabulku "kosiky" a do ní přidával řádky v momentu, kdy se má vytvořit košík. Potom bych měl druhou tabulku, kde by bylo
ID
ID_kosiku
ID_zbozi
pocet_kusu


Nebo to budeš ukládat do session :) To tvé řešení má také totiž takovou jednu né zrovna vtipnou vlastnost.

Modelovej příklad :

Základ :
 - Obchod 200 zákazníků denně
 - 100 z nich dokončí objednávku
 - 100 z nich ji nedokončí ( vypne prohlížeč, odejde na jinou stánku atd. )
 - každý zákazník průměrně 4 věci v košíku
 - obchod běží 100 dní

Výsledek

 - V tabulce "kosiky" je 100 * 100 = 10000 řádků, které sou k ničemu.
 - V tabulce "kosiky_zbozi" je 100 * 100 * 4 = 40000 řádků které sou k ničemu


Samozdřejmě se to dá ošetřit a nepotřebné řádky nejakým způsobem z databáze odstraňovat, ale proč je tam vlastně vkládat když s velkou pravděpodobností tam bude 80% řádků které sou úplně k ničemu?Úkládat takovéto informace u bežných neregistrovaných uživatelů nemá valný smysl.

U registrovaných uživatelů je situace samozdřejmě jiná, ale u tzv. "kolemjdoucích" je takovéto ukládání košíku zbytečné.
Jarek001
Profil
Ahoj, nemohli by jste mi někdo poradit něco ohledně MySQL? Potřebuju vytvořit menší obchůdek a ať hledám, kde hledám, nikde na netu nic o tvorbě eshopu není. Potřebuju abych tam měl tohle:

Registrace
Přidání do košíku
Košík
Objednávka
Dokončení objednávky

Tu registraci už mám trochu vytvořenou, takže mi už pouze schází to zbyle... Poradí někdo? S MySQL začínám... :))
klingac
Profil
co tak skusit oscommerce?
Jarek001
Profil
No do toho se mi nechce, protože to potřebuju vložit do již vytvořené stránky a navíc se jedná o 6výrobků
BetaCam
Profil
Jarek001

No a s čim přesně potřebuješ poradit??
Jarek001
Profil
Potřebuju poradit nějaký script kterým přidám zboží do košíku a ještě jeden kterým košík načtu.

Našel jsem v adresáři něco takového, ale už mi k tomu chybí ten další soubor...:

<?php
$kolik = $_POST['kolik'];
$kod = $_POST['kod'];
$nazev = $_POST['nazev'];
$popis = $_POST['popis'];
$vel_cena = $_POST['vel_cena'];
$pridat = $_POST['pridat'];
$sortiment = $_POST['sortiment'];

list($velikost,$cena) = explode('&&',$vel_cena);
$key4 = $kod . $velikost . $cena . $barva;

$chyba = false;
if (!ereg('^[0-9]+$',$kolik)) { // platné množství?
echo "<div>Množství obsahuje neplatné znaky $kolik...";
$chyba = true;
}
elseif ($kolik <= 0) {
echo "<div>Neplatné množství $kolik...";
echo '<br>...přejete-li si změnit nebo zrušit položky v košíku, můžete otevřít košík a provést úpravy tam.</div>';
$chyba = true;
}

else { // je to už v košíku?
$new_arr = array();
if (isset($_SESSION['kos'])) {
$kos_arr = $_SESSION['kos'];
foreach ($kos_arr as $cislo_radku => $radek) {
list($kos_objed,$kos_sment,$kos_kod,$kos_nazev,$kos_popis,$kos_cena ,$kos_kolik) = explode('|',$radek);
$kos_key4 = $kos_kod . $kos_velikost . $kos_cena;
if ($kos_key4 == $key4 && $sortiment && $kos_sment) {
echo "<div>$kos_nazev již je v košíku...";
echo '<br>...můžete otevřít košík a provést úpravy tam.</div>';
$chyba = true;
break;
}
} // end for
$new_arr = $kos_arr;
}
}

if (!$chyba) {
$new_row = $objednavka.'|'.$sortiment.'|'.$kod.'|'.$nazev.'|'.$popis.'|'.$cena.'| '.$kolik.'|'.$key4.'|'.'EOR';
$new_arr[] = $new_row;

$_SESSION['kos'] = $new_arr;
echo "<div class='bold'>Bylo uloženo do košíku:</div>";
echo "<br><span class='bold'>Název: </span> $nazev";
echo "<br><span class='bold'>Objednací kód: </span> $kod";
echo "<br><span class='bold'>Popis: </span> $popis";
echo "<br><span class='bold'>Cena: </span>", format($cena), '&nbsp;Kč včetně DPH';
echo "<br><span class='bold'>Kolik: </span> $kolik";

$cena = ereg_replace(',', '.', $cena); // desetinná tečka z čárky

$soucin = $cena * $kolik;
echo "<br><span class='bold'>Součin: </span><span class='red'>", format($soucin), " </span>&nbsp;Kč";
}
?>

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:

0