Autor Zpráva
nightrider
Profil
Už se to tu řešilo, ale nevyřešilo. Vím že to je celkem dost složitý, ale našel by se někdo kdo by dokázal pomoct?
Jedná se o vkládání do databáze vybraných produktů. Jde mi o to aby se všechny produkty zapsali pod svím id. Prosím nepište mi nic o historii a o JOY. Děkuju
// Zápis do SESSIONU: vysvětlení zápisu-je seznam produktů a v každým tom produktu je odkaz na přidání do košíku (href="kosik.php?co=id=<$řádek[id_produktu]>")
$_SESSION['kosik'][$_GET['id']]  = isset ($_SESSION['kosik'][$_GET['id']]) ? ($_SESSION['kosik'][$_GET['id']] + 1) : 1;

$dotaz = 'SELECT * FROM kategorie, produkt WHERE kategorie.id_kategorie = produkt.id_kategorie AND produkt.id_produktu IN (';
	foreach ($_SESSION['kosik'] as $klíč => $hodnota) {
	$dotaz .= $klíč. ',';
}
$dotaz = substr ($dotaz, 0, -1). ') ORDER BY kategorie.nazev ASC';
$vysledek = mysql_query($dotaz);

// Zobrazi všechny položky.
$celkem = 0; // Celková cena objednávky.
while ($řádek = mysql_fetch_array($vysledek, MYSQL_ASSOC)) {
// Takhle si vytahuju data do tabulky
/*
<tr class=\"tr2\" value=\"".++$i."\">
	<td align=\"left\">$identita</td>
	<td align=\"left\"><a href=\"detail.php?id={$řádek['id_produktu']}\">{$řádek['nazev_produktu']}</td>
	<td align=\"left\">$suma_mena_v$znacka </td>
	<td align=\"left\"><select class=\"input_kos\" name=\"mnozstvi\">
	<option value=\"{$_SESSION['kosik'][$řádek['id_produktu']]}\">{$_SESSION['kosik'][$řádek['id_produktu']]}</option>
	<option>1</option><option>2</option><option>3</option><option>4</option>
	<option>5</option><option>6</option><option>7</option><option>8</option>
	<option>9</option><option>10</option><option>11</option><option>12</option>
	<option>13</option><option>14</option><option>15</option>
	</select> <a href=\"javascript:OpenJSLWindow('sablony/info.php?id=$řádek[id_produktu]','JSL',540,218);\"><img src=\"css/user/default/img/i.png\" border=\"0\" alt=\"obr.\"></a></td>
	<td align=\"left\">". number_format ($bonus, 0, ",", " "). "$znacka</td>
	<td align=\"right\"><input type=\"submit\" name=\"oprava\" class=\"ok\" value=\"\" title=\"$upravit_z\"> | <input type=\"submit\" name=\"smazat\" class=\"ko\" value=\"\" title=\"$smazat_z\"></td>
</tr>
*/

// Takhe se snažím dosáhnout zápisu
foreach($kosik as $val) {
   $db->query('INSERT INTO objednavky (id_objednavky,nazev_produktu) VALUES('', '$řádek[nazev_produktu]')');
 }
}

Jj, je to v diakritice, ale funguje.
tiso
Profil
nightrider - prečo si KONEČNE nevypíšeš tie dotazy čo vytváraš?
jogurt
Profil
To uz vidim takhle v noci spatne na monitor, nebo opravdu pouzivas diakritiku v kodu?
nightrider
Profil
nightrider - prečo si KONEČNE nevypíšeš tie dotazy čo vytváraš?
Kdyby jsem věděl co mám dělat, tak tu už týden neotravuju s jednou věcí. Nechápu proč kritizujete! Já umím taky někam chodit a psát o věcech který ten človíček bude vědět i beze mne :-) nedělám to a to ze 2 důvodů
1. vím co to je když se člověk s něčím trápí
2. nezdá se mi to jako zábava

Omluvte mojí upřímnost, ale kritiky jsem si užil za ten týden nebo dokonce i dva až dost. Já se neživím tvorbou webu, ale mám to jako koníčka. Bohužel jsem pořád ještě začátečník a tak se stále učím a pravdou je že spíš potřebuju někoho kdo mi poradí.
Pomůže mi tedy někdo?
fuckin
Profil *
rad bych pomohl ale nepochopil sem co chces.,vysvetli to poradne :)
Mastodont
Profil
nightrider
Těžko radit, když při pohledu do kódu nevidím, co je třeba v $_SESSION['kosik'] ... jak ti píše tiso, vypiš sem obsah $dotaz a strukturu tabulek. Vypsal sis případné chyby?
tiso
Profil
nightrider - nekritizujem, pýtam sa. Odpovedal si že nevieš čo máš urobiť. Moja odpoveď: keď nevieš, tak by si naozaj nemal robiť eshop. Eshop je veľký a zložitý projekt, treba myslieť na bezpečnosť, optimalizáciu dotazov a celkovo výkonu (aby to nepadlo keď budeš mať 50 návštevníkov na stránke, aby si neprekročil nejaký limit na počet dotazov na DB na nejakom hostingu, ...). Naozaj tieto vedomosti nemáš, keď ani nevieš základy - ako si skontrolovať obsah premenných a podobne. Ako by to dopadlo keby začínajúca stavebná firma ide robiť mrakodrap?
Za mesiac si tu založil 30 tém. Čo chceš aby sme tu urobili? Naučili ťa programovať? Spravili ti ten eshop? Takto to nefunguje a ani fungovať nemá. Na výuku slúžia krúžky v školách, knihy a seriály o programovaní. Ak chceš aby ti niekto spravil ten eshop, tak na to vytvor tému v sekcii Práce a zakázky.
Späť k tvojmu dotazu: ak nevieš ako zistiť čo v premennej je, tak su ju musíš vypísať pomocou echo, var_dump() či print_r()
...
var_dump($_SESSION['kosik']);//mam v session to co tam chcem mat?
foreach ($_SESSION['kosik'] as $klíč => $hodnota) {
    $dotaz .= $klíč. ',';
}
$dotaz = substr ($dotaz, 0, -1). ') ORDER BY kategorie.nazev ASC';
var_dump($dotaz);//vyzera dotaz tak ako ma?
$vysledek = mysql_query($dotaz);
...
while ($řádek = mysql_fetch_array($vysledek, MYSQL_ASSOC)) {//diakritika v nazvoch premennych? okamzite prec!!!
    var_dump($radek);//riadok z db;
    foreach($kosik as $val) {
        $dotaz='INSERT INTO objednavky (id_objednavky,nazev_produktu) VALUES('', '$řádek[nazev_produktu]')';
        var_dump($dotaz);//vyzera dotaz tak ako ma?
        $db->query($dotaz);
    }
}

Samozrejme že nie naraz, ale postupne, postupuj od začiatku.
nightrider
Profil
Nevím jakej mám počet témat,ale když si je projedeš, tak uvidíš že jedno téma jsem založil i třeba 4x páč nikdo nereagoval a pokud se pořádně podíváš, tak i zjistíš že skutečná pomoc byla tak 4x. Jinak ve většině případů, tam je: vyřešil jsem si sám (nebyla reakce lidí).

Byl jsem na kurzu, ale byl časově omezenej, tak sotva jsme se dostali k tabulkám css, sql atd. Jsem samouk a ten shopík je na mojí potřebu a ne na prodej a i přes to že s tebou souhlasím o bezpečnosti a tak dál, tak na tom shopíku bude míň jak 50 uživatelů naráz a i kdyby tam bylo víc naráz, tak nevidím žádnej problém :-) Bezpečnost: ta tam je > neříkám že 100% a co je 100%? Když se někdo nabourá do databáze ČS atd. a ukradne databázi klientů, tak co je dneska bezpečný? K dotazu co chci? JJ, chci naučit programovat :-)

Když mu to dám takhle:
<?php include ('sablony/img_src.php');
$dotaz = 'SELECT * FROM kategorie, produkt WHERE kategorie.id_kategorie = produkt.id_kategorie AND produkt.id_produktu IN (';

var_dump($_SESSION['kosik']);//mam v session to co tam chcem mat?
foreach ($_SESSION['kosik'] as $klíč => $hodnota) {
    $dotaz .= $klíč. ',';
}
$dotaz = substr ($dotaz, 0, -1). ') ORDER BY kategorie.nazev ASC';
var_dump($dotaz);//vyzera dotaz tak ako ma?
$vysledek = mysql_query($dotaz);

while ($řádek = mysql_fetch_array($vysledek, MYSQL_ASSOC)) {//diakritika v nazvoch premennych? okamzite prec!!!
    var_dump($radek);//riadok z db;
    foreach($kosik as $val) {
        $dotaz='INSERT INTO objednavky (id_objednavky,nazev_produktu) VALUES('', '$řádek[nazev_produktu]')';
        var_dump($dotaz);//vyzera dotaz tak ako ma?
        $db->query($dotaz);
    }
}
?>

Tak je tam nějaká chyba kterou nechce zobrazit a usekne mi to spodek řádku. Mrcha jedna
Majkl578
Profil
nightrider
nevim jaky prase te ucilo, ale diakritika v nazvech nema co delat. chces se naucit programovat? zacni zde!

ted k problemu, proc jednou resis dotazy na databazi objektove a jednou ne?
kajaman
Profil
nightrider

1, pokud chceš programovat, tak nezačínej e-shopem, jak už tady někdo psal,
2, pokud chceš e-shop, tak si ho nemusíš programovat, použij něco hotového.
nightrider
Profil
nightrider
1, pokud chceš programovat, tak nezačínej e-shopem, jak už tady někdo psal,
2, pokud chceš e-shop, tak si ho nemusíš programovat, použij něco hotového.
Zase musím souhlasit, ale já nechci hotová řešení :-( Když se stím nepotrápim, tak to budu brát jako shop,ale když se sním poperu, vynervuju, tak když něco přijde, tak řeknu něco jako "Stálo to za to,, někomu to přijde směšný, ale i přesto že umím prd, tak si ho chci udělat. Zas až takovej začtečník nejsem, ale přiznávám že do shopu se mám hodně co učit,ale to jsem věděl ještě než jsem si spustil Dreamweaver a přesto mi stačí vkládání zaznamů, udělat si redakční místnost a mám ho :-)
Majkl578
Profil
Zas až takovej začtečník nejsem
proto pouzivas diakritiku? to by snad ani zacatecnik neudelal...
nightrider
Profil
K diakritice jsem se už vyjádřil a pomohla mi knížka od známého programátora. K tomu můžu jen napsat: taky se mi to nelíbilo,ale on ví co dělá a proč to netestnout. Jinak řečeno: taky se mi to nezdálo,ale žádnej problém jsem nezaznamenal a tak jsem jí tam nechal. Protože to hodně lidí pobouřilo a taky s Váma souhlasím, tak jí odstraním.
Joker
Profil
tiso
K tomu kódu jen taková drobnost- přijde mi užitečné když do kódu musím dát nějaké "debug" věci, které v "ostrém" kódu být nemají, neodsazovat je spolu s kódem.
Pak se snadněji hledají řádky, které je potřeba smazat, když to začne fungovat správně ;)

nightrider
Jenže- ono se ne nadarmo říká "žádný učený z nebe nespadl".
Znám dost lidí, kteří se rozhodli začít programovat s nějakým "velkým" projektem- obvykle to je počítačová hra :) Koneckonců, i já sám jsem takhle začínal s Céčkem.
Jenže to vede k tomu, že se do toho člověk obvykle zamotá, zjistí, že je to daleko složitější než původně čekal, že spoustu věcí nedomyslel, spoustu věcí neví jak udělat... a nakonec se na to vykašle. Ostatně, jako i já sám na Céčko :-D
Většinou s tím totiž souvisí očekávání, že to půjde ráz na ráz... a ze začátku to opravdu "jede". Pak se zjistí, že nějaká část je špatně napsaná a je potřeba to překopat. A kvůli tomu je potřeba překopat i něco jiného. Ha, na webu je článek o programování něčeho... nojo, jenže z něj vyplývá, že i ten nový návrh je špatně. Takže to zase překopat...
...a najednou člověk třeba měsíc usilovně programuje a přitom navenek to vůbec není vidět- což je hrozně demoralizující.
Mastodont
Profil
Ad diakritika - pokud to jazyk umožňuje a zvládá ji Intellisense editoru, PROČ JI NEPOUŽÍT? Nevidím důvod. Osobně tedy píšu všechny názvy v angličtině.
tiso
Profil
nightrider [#8],[#11] - stále si melieš len to svoje. Ako si ty prispel k riešeniu svojho problému? Ako si pomohol ostatným([#5],[#6]) aby si im pomohol v riešení svojho problému? Nijak. Nemá význam sa s tebou baviť, je to strata času.

Joker - tak na to hádam máme v editoroch vyhľadávanie, nie? Osobne za debug riadky ešte píšem komentár //test, takže je jedno či je tam echo/print_r
/var_dump/nastavenie premennej na nejakú hodnotu. Tieto testovacie riadky len zakomentujem ak ich už nepotrebujem kým robím skript, keď je hotový tak ich vymažem...

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: