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.

Tvůrce

Zobrazeno 16 zpráv z 16.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
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.