Autor | Zpráva | ||
---|---|---|---|
majster_sveta Profil |
#1 · Zasláno: 23. 6. 2008, 15:27:02
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' |
||
Terk Profil |
#2 · Zasláno: 23. 6. 2008, 15:41:27
divný ... co mezery na začátku ?
|
||
Terk Profil |
#3 · Zasláno: 23. 6. 2008, 15:42:03
ještě bych zkusil opravit index
|
||
majster_sveta Profil |
#4 · Zasláno: 23. 6. 2008, 16:08:34
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
|
||
Časová prodleva: 3 dny
|
|||
peta Profil |
#5 · Zasláno: 26. 6. 2008, 10:10:58 · Upravil/a: peta
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 * |
#6 · Zasláno: 26. 6. 2008, 11:44:34
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 |
#7 · Zasláno: 26. 6. 2008, 12:06:34
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 * |
#8 · Zasláno: 26. 6. 2008, 12:41:20
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 |
#9 · Zasláno: 26. 6. 2008, 13:04:09
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 * |
#10 · Zasláno: 26. 6. 2008, 13:05:10
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 |
#11 · Zasláno: 26. 6. 2008, 16:54:16
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 :-) |
||
Časová prodleva: 16 let
|
0