Autor Zpráva
majster_sveta
Profil
vyhľadal som si v tabuľke, v stĺpci typu varchar (100) nejakú hodnotu, manuálne, čiže mám 100% istotu že je v databáze, potom som klikol v phpmyadmin na SQL, napísal
SELECT * FROM `tabula` WHERE stlpec='hodnota'
a ono to urobilo v poriadku, ale vyhodilo NULA výsledkov, pričom mám absolútnu istotu, keďže som si to predtým manuálne pozrel, že tá hodnota tam je. neviete v čom to môže byť?
Terk
Profil
divný ... co mezery na začátku ?
Terk
Profil
ještě bych zkusil opravit index
majster_sveta
Profil
ehm, medzery na začiatku, lol, zas taký dmt niesom - a oprava indexu? to sa ako robí :-) v možnostiach tabuľky som dal opraviť tabuľku, ale to asi nebude ono
peta
Profil
majster_sveta
co treba odkaz na stranku?

struktura tabulky nic?
v php adminu kliknes export struktury tabulky

vypis udaje z phpadminu pro stejny prikaz nic?
SELECT * FROM `tabula` WHERE stlpec='hodnota'
pokud to presne zadas do phpadminu, a rikas, ze ti to zobrazi, tak to funguje. v tom pripade ale nas zajima, co presne ti to zobrazi.

SELECT * FROM `tabula` WHERE stlpec='hodnota'
dotaz, je to skutecne uplny konkretni priklad sql dotazu nebo sis ho prave vymyslel? Jsou `tabula` a 'hodnota' realne udaje nebo vymyslene?
Pokud jsou vymyslene, pak se tezko hleda chyba. Je mozne, ze pokud tva hodnota obsahuje diakritiku, hacky / carky, pak mas spatne nastavene pripojeni k databazi v programu. Takze ti to nenajde. V phpadminu je to dobre cesky/slovensky a ceske/slovenske jmeno to najde.

vyhledavat udaj pro varchar100 je docela zatez na databazi. Predpokladam, ze mysql ma dost spatne postavene indexy. Nekdo rikal, ze dokonce fulltext je zabugovany a ze se pouziva nejaky spesl program.
urcite bych vyhledaval podle prvnich 3-16 znaku a zobrazil radeji vice vysledku.
Nebo zobrazit jeden, nejsem si ale jist, kdyz nastavis index na 3-16, zda dokaze projit nalezene vysledky a dohledat cele slovo.
majstersveta_work
Profil *
nie som blby aby som daval na live server nieco co nefunguje, testujem na lokale, - struktura tabulky? a naco? ved ja som pouzil select dotaz., ktori ma vybrat cely riadok tam, kde sa urcita hodnota urciteho stlpca rovna hladanemu vyrazu

vypis udajov s php my adminu? ved v prvom prispevku pisem ze to vyhodilo NULA vysledkov, cize dotaz v poriadku, ale nic to nenaslo

slovo som nasiel take co nemalo diakritiku, hore uvedeny dotaz funguje, ak tam dam namiesto stlpec='hodnota' priblizne nieco taketo: stlpec like %hodnota% - cize vyhladavanie riadkov, kde sa hladany vyraz predstavuje cast hodnoty

kodovanie mam vsade nastavene dobre, na to som si dal pozor - proste obycajny select dotaz nechce fungovat - pravdepodobne to vyriesim fulltextovym hladanim - pretoze takto, ked obycajny, 100% spravny select nechce fungovat je znacna blbost

jedina pouzitelna vec co si napisal je "vyhledavat udaj pro varchar100 je docela zatez na databazi" - co je mozno problem, ktori vyriesi fulltextove hladanie - pretoze to moze blbnut kvoli velkemu poctu poloziek
TSD
Profil
majster_sveta
zas taký dmt niesom

Když ti nefunguje nejtriviálnější možný sql příkaz, tak tam zřejmě nejakou "dmt" chybu máš, takže bych podobnými reakcemi šetřil.
majstersveta_work
Profil *
dobre, takže:

SELECT * FROM `slova_sk` WHERE slovo='autobus' -> priamo tento príkaz, absolútne syntakticky správny, - také niečo že bodkočiarku na konci som dať skúsil, ale to nie je vec, ktorá je pokazená

a vravím, manuálne som si overil že v tabuľke slova_sk existuje riadok, ktorého hodnota slovo je autobus, bez medzier, typ varchar 100 - phpmyadmin spraví príkaz a vyhodí nula výsledkov, ak napíšem

SELECT * FROM `slova_sk` WHERE slovo like '%autobus%' tak to vyhodí všetky slová čo majú v sebe slovo autobus - čiže správne

a vidím že absolútne nikto nedokáže povedať prečo to nefunguje
nightfish
Profil
SELECT * FROM `slova_sk` WHERE slovo='autobus'
vravím, manuálne som si overil že v tabuľke slova_sk existuje riadok, ktorého hodnota slovo je autobus, bez medzier, typ varchar 100
SELECT * FROM `slova_sk` WHERE slovo like '%autobus%' tak to vyhodí všetky slová čo majú v sebe slovo autobus
a vidím že absolútne nikto nedokáže povedať prečo to nefunguje

jaké porovnávání má nastavena tabulka/sloupec `slovo`?
pokud ti ten druhý dotaz vyhodí to, co má a ten první ne, tak si zřejmě mysql myslí, že tam žádný řádek se `slovo` = 'autobus' není
můžeš nám sem poslat export tabulky (např. z phpmyadmina) - stačí struktura tabulky + insert řádku s "autobusem"
Kajman_
Profil *
Zkuste
select hex('autobus'), hex(slovo), slovo FROM `slova_sk` WHERE slovo like '%autobus%'
a napište sem řádek, který si myslíte, že má verze s = vracet, ale nevrací.
majster_sveta
Profil
nightfish - "tys si na to kapnul" - vypisanie insertu pre dane slovo mi ukazalo moju chybu - a hlavne neviem ako som si to mohol nevsimut - aj ked v phpmyadmine bolo iba to slovo, nic ine a export insertu daneho slova mi to ukazal:

'abecedy\r'


chapete, nie?

esteze sa mozem vyhovorit ze tu db som nevytvaral ja :-)

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:

0