Diskuze: SQL chyba v jednou sloupečku
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 16 zpráv z 16.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Nemáš tam nějaké jionování, kde by v jiných tabulkách byl stejný název sloupce? pak by bylo potřeba použít aliasy
SELECT
tabulka.name AS name,
tabulka2.nick AS nick
FROM tabulka tabulka
INNER JOIN tabulka2 tabulka2 ON tabulka.tabulka2 AS tabulka2.id
...
Pracuji pouze s jednou tabulkou takže tohle asi chyba nebude.
Jaký datový typ je nastavený na tom sloupci? Nemáš tam třeba "int" a data v tabulce jsou "string"?
Nevrátí to taky nic, ale když do dotazu vyberu všehny sloupečky kromě toho jednoho tak to jde normálně.
Datová typ je varchar a data jsou v pohodě bych řekl
Tak se schválně koukni do té tabulky, co je tam v tom sloupci ve všech
řádcích, zdá se, že tam bude nějaký problém u nějakého záznamu.
Můžeš data z toho sloupečku vymazat a popř. pak je tam dát ručně?
Udělal jsem si novou tabulku s touhle strukturou abych to vyzkoušel takže na stejný princip to je i v té hlavní kde mám asi jen 17 záznamů.
id, kategorie
data:
1 | dřevo
2 | železo
a když jsem zkusil vypsat
SELECT id FROM tabulka
tak to šlo, ale když tohle
SELECT id, kategorie FROM tabulka
tak už to nefunguje
Normálně si naštu data z databáze přes PDO. Klasika SQL > PREPARE > EXECUTE > FETCH::PDO_OBJ potom to encoduju (json_endode) a pošlu přes AJAX na stránku.
Ale teď se mi zdá, že je chyba v kódování protože když z toho "dřevo" a "železo" vymažu háčky a čárky tak to jde vypsat. V tabulce mám ale české kódování tak nevím.
A na stránce máš kódování jaké? UTF-8?
Vyřešeno, díky za konzultaci.
Stačilo jen přidat
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
PDO je někdy dost nepředvídatelné
Jsem rád, že ti moje myšlenkové pochody pomohly k nalezení řešení...

Zobrazeno 16 zpráv z 16.
