Autor | Zpráva | ||
---|---|---|---|
residentcz Profil |
#1 · Zasláno: 30. 3. 2012, 16:32:19
Ahojte mám problém a nevím jak vypsat data co jsem ulozil do array pres session
$_SESSION["kosik"][intval($_GET["id"])] = intval($_GET["ks"]); $_SESSION["produkty"][intval($_GET["id"])] = intval($_GET["produkty"]); // vypsání obsahu košíku if ($_SESSION["kosik"]) { $result = mysql_query("SELECT * FROM $produkty WHERE id '$id' ('" . implode("', '", array_keys($_SESSION["kosik"])) . "')"); while ($row = mysql_fetch_assoc($result)) { echo htmlspecialchars($row["typ"]) . " (" . $_SESSION["kosik"][$row["id"]] . ")<br />\n"; } mysql_free_result($result); echo "Celkový počet položek v košíku : ".array_sum($_SESSION["kosik"]); echo "<br>"; echo array_sum($_SESSION["kosik"]); potreboval bych z toho dosatat nejak jednotlive data jako id pocet ks a data v produkty. už si nevím rady... |
||
Someone Profil |
foreach ?
|
||
Tori Profil |
#3 · Zasláno: 30. 3. 2012, 19:29:14
residentcz:
Co je toto: WHERE id '$id' ('" . implode(... Nechtěl jste napsat WHERE id IN (...
Mimochodem ta ID v dotazu nemusíte dávat do závorek - sloupec id je číselný typ, a na řádcích 1,2 zajišťujete, aby klíče v session byly vždy číselné. Takže jen implode(", ", array_keys($_SESSION["kosik"]))
|
||
Časová prodleva: 3 dny
|
|||
residentcz Profil |
tak už se mi to podařilo sprovoznit, ale pořád se mi nedaří vypsat počet ks.
if ($_SESSION["kosik"]) { $result = mysql_query("SELECT * FROM $produkty WHERE id IN ('" . implode("', '", array_keys($_SESSION["kosik"])) . "')"); $ks_SESSION = implode(array_keys($_SESSION["kosik"])); while ($row = mysql_fetch_assoc($result)) { echo "<tr><td>"; echo ($row["vyrobce"]).""; echo " "; echo ($row["typ"])."<br>\n"; echo "</td><td>"; echo ($ks_SESSION["ks"])." ks"; echo "</td></tr>"; |
||
residentcz Profil |
#5 · Zasláno: 2. 4. 2012, 16:09:47
zde mám testovací verzi
http://www.goldoffice.cz/new/prodej-av-techniky-objednavka.php?produkty=akce&id=9&ks=1 |
||
Tori Profil |
#6 · Zasláno: 2. 4. 2012, 16:39:57
Řádky 5 a 17 vypadají nesmyslně. implode přece vrací řetězec, proč k němu přistupujete jako k poli? Řádek 5 bych vyhodila, na ř.17 použila
$_SESSION['kosik'][$row['id']]
|
||
residentcz Profil |
#7 · Zasláno: 4. 4. 2012, 08:14:42
jooo díky moc už to mám :) bez Vás bych to nikdy nezvlád :)
jen ještě poslední věc jestli bych mohl :) do session potřebuju dostat 3 údaje a to dělám takto nevím jestli je to ok $_SESSION["kosik"][intval($_GET["id"])] = intval($_GET["ks"]); $_SESSION["produkty"][intval($_GET["id"])] = intval($_GET["produkty"]); id produktu s ks je jasné, ale proměnná produkty je nazev tabulky v DB kde se má přislušné id vyhledat a nevím jak to mám zakomponovat do tohoto mýsto akce :(( if ($_SESSION["kosik"]) { $result = mysql_query("SELECT * FROM akce WHERE id IN ('" . implode("', '", array_keys($_SESSION["kosik"])) . "')"); while ($row = mysql_fetch_assoc($result)) { echo "\n<div class=\"kosik-nazev\">"; echo ($row["vyrobce"]); echo " "; echo ($row["typ"]).""; echo "</div><div class=\"kosik-ks\">"; echo ($_SESSION['kosik'][$row['id']]).""; echo "</div><div class=\"kosik-odstranit\">"; echo "<a title=\"Odstranit položku z košíku\" href=\"prodej-av-techniky-objednavka.php?odstranitid="; echo ($row["id"]).""; echo "\"><img src=\"images/icons/remove.png\" border=\"0\" height=\"16\" width=\"16\"></a>"; echo "</div>"; } mysql_free_result($result); } |
||
Časová prodleva: 5 dní
|
|||
Tori Profil |
#8 · Zasláno: 8. 4. 2012, 20:23:11
residentcz:
„proměnná produkty je nazev tabulky v DB kde se má přislušné id vyhledat“ Pro každou kategorii zboží jedna tabulka? Nevím, jak máte navrženou DB, ale pokud se od sebe jednotlivé tabulky liší jen minimálně nebo vůbec, jde o chybný návrh. Měla by být jedna tabulka s veškerým zbožím, druhá tabulka pro jednotlivé kategorie a spojovací tabulka pro přiřazení zboží do kategorií. Místo spojovací tabulky lze přidat sloupeček do tab. zboží, pokud máte zaručeno, že žádné zboží nikdy nebude ve více kategoriích (např. "nářadí" i "zlevněné"). Šlo by tu hodnotu ze session vyčistit regulárem (vyhodit vše, co není písmeno, číslice, podtržítko nebo pomlčka) a uzavřít hodnotu do zpětných apostrofů, ale přenášet názvy DB tabulek v URL mi připadá jako celkem neobvyklé/nepěkné řešení. |
||
Časová prodleva: 12 let
|
0