Možnost náhledu logu při zpracování dotazů na mé databázi
Dobrý den,
ladím script pro vkládání zboží z FEEDu. Při vytváření kategorií vytvořím záznam kategorie, která v tabulce neexistuje. Když se následně dotazuji na jeho ID pro přiřazení zboží do kategorie, tak jej ve výsledku dotazu nevidím. Tedy dojde k tomu, že script kategorii nenalezl a tudíž ji opět vytvoří. Když se ale podívám do tabulky přes PHP MyAdmin, tak záznam existuje a je jich tolik, kolikrát jsem procházel scriptem a dotazoval se na existenci záznamu příslušné kategorie. Vypadá to jako kdyby se INSERT ještě nedokončil a já se již ptám na jeho existenci. Když proběhne časová prodleva (např. script skončí) tak se data do tabulky zapíší a jsou tam několikrát
4 Answers
Vlákno nyní uzavírám z důvodu neaktivity. V případě potřeby založte nový dotaz nebo nás kontaktujte pomocí kontaktního formuláře.
to MitSoft:
Shop je postaven na Zen Cartu. Využívám jejich princip přístupu k DB.
Na vstupu seznamu kategorií mám např. toto: „ZAHRADNÍ TECHNIKA | Univerzální příslušenství k travním traktorům“. Pomocí Explode rozdělím kategorie a navíc použiju trim pro odstranění mezer.
Pak procházím DB dotazem:
[1]
select c.categories_id from ZS_categories c, ZS_categories_description cd WHERE c.categories_id = cd.categories_id AND cd.categories_name = „Univerzální příslušenství k travním traktorům“ AND c.parent_id = 105 AND cd.language_id = 1
pro vysvětlení CATEGORIES obsahuje vše kromě názvů kategorií a má AutoInc ID (categories_id) jako klíč k tabulce CATEGORIES_DESCRIPTION, kde jsou jen jazykové údaje.
Když záznam neexistuje, zavedu do CATEGORIES záznam a vypíšu si aktuální ID (např. 1 ) záznamu. S tímto ID zavedu další záznam do CATEGORIES_DESCRIPTION s názvem např. „ZAHRADNÍ TECHNIKA“. U této kořenové kategorie nastavuji parent_id na 0, protože již nemá nadřazenou kategorii.
Při dalším průchodu ověřuji existenci kategorie „Univerzální příslušenství k travním traktorům“ a opět při neexistenci ji zavedu. Obdržím ID např. 2 a do CATEGORIES vkládám ID nadřazené kategorie (zde ID 1)
U dalšího výrobku jsou kategorie shodné a tak bych měl po dotazu [1] obdržet ID 1, jenže dotaz je prázdný. dokonce jsem si vypsal přes print_r obsah výsledku dotazu.
Takže se mi tyto kategorie zavedou opět. Vrátí se mi nová ID jednotlivých kategorií.
Po skončení scriptu přes PHP MyAdmin existují všechny záznamy. Stejně tak jsou vidět kategorie na shopu. www.zahrada-shop.eu. Pro představu můžete klidně spustit script nanadrese www.zahrada-shop.cz/import_garland.php
Dobrý den,
zde se jedná o chybu kódu, bylo by tedy vhodnější obrátit se na programátorské fórum, případně alespoň ukázat Váš kód.
Problém bude nejspíše v ověřování existence záznamu.
Dobrý deň,
neviem aký connect na DB využívate, podľa toho by sa to dalo debugovať. Ale skúste dať unikátny index na názov kategórie, lebo predpokladám, že hľadáte podľa neho. Ak bude názov unikátny, viackrát sa Vám neuloží.