Registrovat    Přihlášení
Domů Odkazy Fórum Ke stažení Web hosting Registrace do katalogů
Přihlásit
Jméno:

Heslo:

Pamatuj si mně



Zapomenuté heslo

Nová registrace
Partner a hosting webu
zserver.cz
Spolupráce
Odkazy
česká sociální síť rexVoX.com
Informace a projekty na rodinné domy naleznete v našem blogu.

Navštívit můžete také pasivní rodinné domy - dřevostavby, kde naleznete informace o pasivních stavbách.



Kategorie a fóra
   Všechny příspěvky (Borek)


(1) 2 3 4 5 »


Re: Zkušenosti s se zápisem a vyhledáním v DB při zpracování FEEDu
Pokročilý
Členem od:
23:22 27.2.2007
Skupina:
Registrovaní uživatelé
Příspěvky: 43
Nepřipojen
Tak se k mému tématu vracím opět po nějakém času.

Dnes jsem problém vyřešil.
Bylo to cachováním (kešováním) výsledků ať už z MySQL nebo z PHP.
Zkusil jsem do dotazu, který zjišťuje jestli je již kategorie zavedená,
vložit náhodnou část kódu a tím dojde ke skutečnému načtení dat z DB nikoliv z cache.

Tedy provedená úprava vypadá takto:

$RN = rand(); // generuji náhodné číslo např. 123456
$sql = "SELECT categories_id FROM categories_description WHERE categories_name = 'název' /* $RN */";

po vložení náhodného čísla vznikne
$sql = "SELECT categories_id FROM categories_description WHERE categories_name = 'název' /* 123456 */";

Náhodné číslo je v komentáři, takže neovlivní dotaz, ale dotaz je pokaždé jiný a musí se vygenerovat znovu z DB.
A tím se mi vrátí aktuální data.

Takže kdo řešil podobný problém, zde je rada jak na to.

díky Borek

Zasláno: 7.6. 11:41
_________________
Borek
Přenos příspěvku do ostatních aplikací Přenos


Re: Čeština pro 1.5.8a
Pokročilý
Členem od:
23:22 27.2.2007
Skupina:
Registrovaní uživatelé
Příspěvky: 43
Nepřipojen
Ahoj,
určitě se přidám a jestli potřebuješ s nějakými soubory pomoc, dej mi vědět, zkusím také překládat.¨díky Borek

Zasláno: 7.12. 18:41
_________________
Borek
Přenos příspěvku do ostatních aplikací Přenos


Zkušenosti s se zápisem a vyhledáním v DB při zpracování FEEDu
Pokročilý
Členem od:
23:22 27.2.2007
Skupina:
Registrovaní uživatelé
Příspěvky: 43
Nepřipojen
Zdravím všechny pokročilé,

řeším importní modul XML FEEDu do ZC.
Zjistil jsem zvláštní situaci a nevím jak z ní ven.

Vytvářím strukturu kategorií a na vstupu zjišťuji, zda kategorie se (jménem) již existuje. SELCLT categories_id FROM categories_description WHERE categories_name = "název".
SQL je zjednodušený.

Při prvním průchodu samozřejmě nic neexistuje, tak se mi vrátí výsledek např. takto:

$v = $db->Execute($sql);
echo $v->RecordCount(); // vrati 0

Nechám kategorii zavést a ověřím zavedení načtením ID aktuálního záznamu:
$ID_kategorie = $db->insert_ID(); // vrátí při prvním průchodu 1

Když ale proběhne kód v dalším kroku a výrobek má uvedenou stejnou kategorii, tak mi RecordCount vrátí opět nulu. Stejné je to s testováním $v->EOF. EOF stále hlásí 1.

Testuji na prvních 10 položkách z XML a stále se mi vrací nula v počtu vybraných záznamů a 1 jako potvrzení konce záznamu EOF.

Když script skončí a já se podívám do tabulky, tak tam ale vidím, že jsou kategorie zavedené a pro každou se stejným jménem je vytvořen nový záznam.

Plyne mi z toho, jako by po odeslání SQL dotazu došlo ke zpracování, ale při načtení dalšího dotazu, jako zůstávala nějaká Cache, která podhazuje původní hodnotu místo aktuální. Dá se to někde nasimulovat nebo ověřit?

díky Borek

Zasláno: 19:16 21.6.2021
_________________
Borek
Přenos příspěvku do ostatních aplikací Přenos


Re: Problém s vyhledáváním záznamů v DB
Pokročilý
Členem od:
23:22 27.2.2007
Skupina:
Registrovaní uživatelé
Příspěvky: 43
Nepřipojen
chtěl jsem přiložit html s výpisem z obrazovky s ladícími údaji, ale nepodařilo se mi to.

Zasláno: 20:46 3.12.2018
_________________
Borek
Přenos příspěvku do ostatních aplikací Přenos


Re: Problém s vyhledáváním záznamů v DB
Pokročilý
Členem od:
23:22 27.2.2007
Skupina:
Registrovaní uživatelé
Příspěvky: 43
Nepřipojen
Zdravím,

tak jsem opět našel čas ladit script a fakt nevím co je špatně.
vytvořil jsem si pomocnou tabulku TABLE_KAT, je to spojení TABLE_CATEGORIES a TABLE_CATEGORIES_DESCRIPTION
pro test mi to stačí
Tady je celá funkce vytváření kategorií:

function CreateKAT($k) {
global $db;
$l = $_SESSION['languages_id'];
$kat = explode("|", $k);
$p_k = 0; // parent_kategorie_id
$i = 0;
echo "Spusteno CreateKAT, $k<br>";
print_r($kat);
echo "<br>count KAT = " . count($kat);
for($i=0; $i<count($kat); $i++) {
$nk = trim($kat[$i]);
$sql = "SELECT categories_id, categories_name, parent_id FROM " . TABLE_KAT;
$mc = $db->Execute($sql);
echo "nyni je zavedeno " . $mc->RecordCount() . " zaznamu<br>";
if($mc->RecordCount() > 0) { // nactu vsechny zaznamy a pokusim se vypsat HEX kody stringu
echo "HEX NK = [" . strToHex($nk) . "]<br>";
echo "HEX = [" . strToHex($mc->fields['categories_name']) . "]<br>";
}
$sql = "SELECT categories_id, categories_name, parent_id FROM " . TABLE_KAT . " WHERE categories_name = '" . $nk . "'";
$c = $db->Execute($sql);
if($c->RecordCount() > 0) {
$CatId = $c->fields['categories_id'];
$p_k = $c->fields['parent_id'];
echo "kategorie (" . $nk . ") existuje a ma ID = " . $CatId . "<br>";

} else {
echo "kategorie (" . $nk . ") NEEXISTUJE<br>";
$sql = "INSERT INTO " . TABLE_KAT . " (parent_id, categories_name, categories_status) VALUES (" . $p_k . ", '" . $nk . "', 1)";
$m = $db->Execute($sql);
$CatId = $db->insert_ID();
$p_k = $CatId;
echo "<br>SQL INSERT - vytvorena kategorie (id = $CatId|$nk) = " . $sql;
}
}
echo "<br>ID kategorie = $CatId, kategorie END - obsazena pamet = " . memory_get_usage() . "<br><br>";
return $CatId;
}
1. rozložím string s názvy kategorií oddělených |
2. procházím vzniklé pole
3. do $nk vložím jen název kategorie
4. zbytečný dotaz na DB, jen zjišťuji, kolik mi vrátí všech záznamů z tabulky
5. jestli je počet záznamů větší než 0 tak se pokouším vypsat HEX kody stringu (jestli nemám problém v kódování)
ale nespustí se
6. vyhledám název kategorie v tabulce
7. když je nalezena vrátím její categories_id a parent_id
8. když neexistuje tak ji vytvořím a uložím do DB
9. podle posledního uloženého ID zjistím categories_id a to samé vložím do Parent_id
10. tak projdu celé pole a vrátím číslo poslední kategorie z proměnné $k

to předám nadřazené funkci a uložím výrobek a vytvořím i záznam do TABLE_PRODUCTS_TO_CATEGORIES

když projdu další výrobek, spustím funkci CreateKAT znovu s aktuálním $k

Ale pořád to zavádí každou kategorii znova.
Ještě přikládám výpis z průchodu scriptem
každý výrobek začíná pořadím

díky za Váš čas

Borek

Zasláno: 20:44 3.12.2018
_________________
Borek
Přenos příspěvku do ostatních aplikací Přenos


Re: Problém s vyhledáváním záznamů v DB
Pokročilý
Členem od:
23:22 27.2.2007
Skupina:
Registrovaní uživatelé
Příspěvky: 43
Nepřipojen
To je právě ono.
V rámci této funkce mi vrací dotaz prázdný záznam.
Když se vrátím do nadřazené funkce (odkud tuto volám) a nechám si vypsat stejný dotaz, tak tak záznamy již jsou

Budu zkoušet ještě další varianty

díky Borek

Zasláno: 11:29 21.11.2018
_________________
Borek
Přenos příspěvku do ostatních aplikací Přenos


Re: Problém s vyhledáváním záznamů v DB
Pokročilý
Členem od:
23:22 27.2.2007
Skupina:
Registrovaní uživatelé
Příspěvky: 43
Nepřipojen
Zdravím,

právě, že mi to není jasné. Nevím jak to otestovat.
Podle výpisu z ladění mi SELECT nevrátí nic, ale když odešlu INSERT, tak se data zapíšou, protože vrátí ID posledního zapsaného záznamu.
Zkoušel jsem v různých částech rutiny vložit další SELECT, jestli vrátí něco jiného, ale pořád je to prázdné.
Když skončí běh rutiny a vezmu vypsané dotazy, tak mi vrátí všechny zapsané položky tedy každá kategorie je zapsaná tolikrát, kolikrát je v XML výrobek s uvedenou kategorií.

Nejhorší na tom je, že jsem podobný importní modul psal už několikrát a bez problémů. A teď jsem se zasekl a nevím kde je problém.

Jdu dál zkoušet
díky Borek

Zasláno: 21:00 20.11.2018
_________________
Borek
Přenos příspěvku do ostatních aplikací Přenos


Problém s vyhledáváním záznamů v DB
Pokročilý
Členem od:
23:22 27.2.2007
Skupina:
Registrovaní uživatelé
Příspěvky: 43
Nepřipojen
Zdravím,

dostal jsem se do situace, kdy už nevím jak dál.

Programuji import XML dat do MYSQL. Problém mám se zavedením kategorií.
Procházím cyklem záznamy z XML. Vezmu název kategorie a pokud ji v tabulce nenajdu, tak ji zavedu a vrátím její ID. Problém je v tom, že když zavedu první kategorii a dostanu se k druhému výrobku, který má stejnou kategorii, tak mi již zavedenou kategorii nenajde a vrátí prázdný záznam. Tím je tato kategorie považovaná za novou a je opět zavedena.

Zkouším všechno možné, ale nevím jak dál, protože mi to vytvoří pro každý výrobek vlastní kategorii se stejným názvem. Po skončení importu, vidím přes PhPMyAdmin všechny jednotlivé kategorie zavedené.

function UlozKategorie($kategorie) {
global $db;

$l = $_SESSION['languages_id'];
$k = explode(" | ", $kategorie);
$p_k = 0; // parent_kategorie_id
$i = 0;
foreach ($k as $kn) {
//echo "<br>($kn), [" . trim($kn) . "]";
$sql = 'SELECT categories_id, categories_name FROM ' .
TABLE_CATEGORIES_DESCRIPTION . ' WHERE categories_name = "' . $kn . '"';
$c = $db->Execute($sql); // zjistim jestli je kategorie s názvem $kn zavedená

if($c->RecordCount() > 0) {
$AktKat = $c->fields['categories_id'];
$p_k = $AktKat;
echo "<br>kategories existuje a ID = " . $AktKat;
} else {

$sql = 'INSERT INTO ' . TABLE_CATEGORIES . ' (parent_id, date_added,
last_modified, categories_status) VALUES ';
$sql .= '(' . $p_k . ', now(), now(), 1)';
$c = $db->Execute($sql);

$AktKat = $db->insert_ID();
$p_k = $AktKat;
echo "<br>ID nove kategorie = " . $AktKat;
$sql = 'INSERT INTO ' . TABLE_CATEGORIES_DESCRIPTION . ' (categories_id,
language_id, categories_name) VALUES ';
$sql .= '(' . $AktKat . ', ' . $l . ', "' . $kn . '")';
$c = $db->Execute($sql);

$sql = 'SELECT c.categories_id, c.parent_id, cd.categories_name
FROM ' . TABLE_CATEGORIES . ' c INNER JOIN ' . TABLE_CATEGORIES_DESCRIPTION . '
cd ON c.categories_id = cd.categories_id WHERE cd.categories_name = "' . $kn . '"';
$c = $db->Execute($sql);

if($c->RecordCount() > 0) {
echo "<br>kategorie byla zavedena. ID = " . $c->fields['categories_id'] . ",
Parent_id = " . $c->fields['parent_id'] . " Nazev = " . $c->fields['categories_name'];
}
}
$i++;
}
echo "Vracim ID vybrane kategorie [" . $AktKat . "]";
return $AktKat;
}

Napadlo mě, že by problémem mohlo být nějaké zdržení mezi založením kategorie a následným dotazem zda záznam již existuje, ale nevím jak to zjistit.

nemáte někdo radu kde co dělám špatně?

díky za nakopnutí Borek

Zasláno: 12:52 16.11.2018
_________________
Borek
Přenos příspěvku do ostatních aplikací Přenos


Re: Chyba ve výpočtu ceny za zboží
Pokročilý
Členem od:
23:22 27.2.2007
Skupina:
Registrovaní uživatelé
Příspěvky: 43
Nepřipojen
Tak jsem hledal problém a zjistil jsem, že při dokončení objednávky se v rekapitulaci zobrazuje mezisoučet a ten je počítán jen z celé částky za kus. Tedy místo 31,20 Kč se počítá jen s 32,00 Kč. V tom je vzniklý rozdíl.
V podstatě se ale jedná jen o nepřesnost v rekapitulaci, protože objednávka má po dokončení správnou hodnotu.

Otázkou tedy zůstává, zda někdo neví, kde se provádí výpočty na jednotlivých stránkách dokončení objednávky, aby se údaje nelišily od skutečných hodnot a nemohlo to mást zákazníka.

díky Borek

Zasláno: 8:19 10.10.2018
_________________
Borek
Přenos příspěvku do ostatních aplikací Přenos


Chyba ve výpočtu ceny za zboží
Pokročilý
Členem od:
23:22 27.2.2007
Skupina:
Registrovaní uživatelé
Příspěvky: 43
Nepřipojen
Zdravím všechny,

dávám dohromady shop a potřebuji zavést zboží s cenami závislými na množství objednaného zboží. Tabulku množství a cen jsem si doplnil a vypadá to správně, ale jen vypadá.

mám základní cenu 39 Kč/ks + DPH
od 144 ks je cena 31,20 Kč/ks
tedy vložím do koše 144 ks a hodnota v koši je 4492,80 Kč + DPH
když si vytvořím zákaznický účet a snažím se dokončit objednávku, vyberu dopravu zdarma a na další stránce je v tabulce celková cena uvedena jako 4464 Kč + DPH.
Někde se mi ztratilo 28,80 Kč + DPH

Když změním počet v koši na 150 ks, činí rozdíl 30 Kč + DPH, při 200 kusech je to 40 Kč + DPH. Někde mi to za každý kus zboží v koši odečítá 0,20 Kč a nechápu proč a kde to změnit.

dokáže mi někdo poradit?
Mám ZC 1.5.5 f
verze DB 1.5.5
PHP 7.0.19
Využívám jen správce cen, žádné atributy
server je: www.log-fix.cz

díky za pomoc Borek

Zasláno: 8:50 9.10.2018
_________________
Borek
Přenos příspěvku do ostatních aplikací Přenos



 Nahoru
(1) 2 3 4 5 »




Odkazy



Zen-Cart ke stažení

Vyšel nový Zencart 1.5.0

Originální moduly můžete stahovat na
www.zen-cart.com

Reklama
Nejaktivnější autoři
1 Melodic
Melodic
1002997
2 Kozoroh
Kozoroh
2124
3 JardaR
JardaR
1888
4 garden
garden
1419
5 Nismo
Nismo
1389
6 hbxx 1131
7 jandik01
jandik01
1070
8 PeterB
PeterB
1017
9 Dedek
Dedek
990
10 bambulko
bambulko
775