Zle vyhadzovanie vysledkov z databazy

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Zle vyhadzovanie vysledkov z databazy

Příspěvekod CZechBoY » 30 pro 2011 14:52

a to vrací jakej MySQL_Query tu chybu?
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Reklama
Uživatelský avatar
Ellrohir
nováček
Příspěvky: 49
Registrován: prosinec 11
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Zle vyhadzovanie vysledkov z databazy

Příspěvekod Ellrohir » 01 led 2012 12:03

fili: já jsem myslel, že když máš v kódu

$sql=MySQL_Query("SELECT * FROM veci WHERE trika LIKE '%".$_GET['search']."%' ");

tak abys na další řádek dal

echo "SELECT * FROM veci WHERE trika LIKE '%".$_GET['search']."%' "

to ti na obrazovku vypíše sql dotaz v podobě, v jakém se předává databázi...buďto už přímo uvidíš chybu, která se zatím skrývá a nebo tenhle text zkopíruj a vlož v phpMyAdminovi a uvidíš, co to dělá tam


ale jestli ti to vyhazuje chybu kódování v databázi, tak problém může být už při připojování k db, vůbec ne tady v tom selectu...a řešit se to musí spíš buďto na úrovni databáze (upgradem na verzi, která podporuje to tvoje kódování) a nebo změnou kódování db na nějaký běžnější a podporovaný aktuálním mysql, který máš k dispozici...
"Zprávy mají velikost, třeba i nulovou, a mají nějaký význam, třeba i žádný."

fili
Level 1.5
Level 1.5
Příspěvky: 102
Registrován: prosinec 11
Pohlaví: Muž
Stav:
Offline

Re: Zle vyhadzovanie vysledkov z databazy

Příspěvekod fili » 01 led 2012 16:24

No, ja som to urobil naopak, skor ako som to tu cital.
Snazil som sa vytvorit dotaz v databaze a tam to fungovalo , len ma to jednu chybu, tam nie ten GET, ktory som zmenil medzicasom na POST a neviem ako ho implementovat do toho dotazu v PHP, asi to robim blbo pretoze mi furt hadze chyby s " alebo '. Dotaz ma takyto tvar:
$sql =mysql_query("SELECT * FROM `veci` WHERE `tricka` LIKE \" '%'\"");
Pokial ide o zmenu kodovania, tak sa bojim robit upgrade a na co by som ho mal zmenit, aby mi to
zobrazovalo spravne slovensku diakritiku? Na stranke pouzivam win 1250.

--- Doplnění předchozího příspěvku (01 Led 2012 18:18) ---

Takze, ked mam tento kod:
$sql =mysql_query("SELECT * FROM `veci` WHERE `tricka` LIKE \".$_POST.'%'\"");
echo "SELECT * FROM `veci` WHERE `tricka` LIKE \".$_POST.'%'\"";
Tak vysledok je:
SELECT * FROM `veci` WHERE `tricka` LIKE ".Array.'%'"

Ked mam tento kod:
$sql =mysql_query("SELECT * FROM `ubytovanie` WHERE `Lokalita` LIKE '%".$_POST['search']."%' ");

Tak mi to vyhodi vsetky tricka napriek tomu, ze si dam vybrat len panske a som zas tam, kde som bol.

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Zle vyhadzovanie vysledkov z databazy

Příspěvekod CZechBoY » 01 led 2012 20:40

neznám tvou datovou strukturu tabulek takže ti nemůžu hodit přesný SQL dotaz takže jedině obecně
funkční SQL dotazy:
SELECT * FROM tabulka WHERE sloupec LIKE 'neco%' - vyhledá hodnoty, kde začátek je "neco" a pokračuje libovolným(y) znak(y) nebo končí
SELECT * FROM tabulka WHERE sloupec LIKE '%neco' - končí na "neco" a předtim je nic nebo jakýkoliv znak(y)
SELECT * FROM tabulka WHERE sloupec LIKE '%neco%' - obsahuje znaky "neco", může být na konci, začátku, uprostřed, kdekoliv
SELECT * FROM tabulka WHERE sloupec LIKE 'neco' - hodnota je "neco" nebo tomu podobné, myslím že musí mít stejnou délku textu
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

fili
Level 1.5
Level 1.5
Příspěvky: 102
Registrován: prosinec 11
Pohlaví: Muž
Stav:
Offline

Re: Zle vyhadzovanie vysledkov z databazy

Příspěvekod fili » 01 led 2012 21:24

No to su dotazy pre vyhladavanie priamo v databaze, tam mi to funguje, vyhodi mi len panske
SELECT * FROM veci WHERE tricka LIKE 'panske'

Ale ja potrebujem, aby mi to vyhladavalo zo stranky.
Nemozem predsa pre kazdu moznost - panske, damske, detske vypisovat dotaz v php, alebo ano?

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Zle vyhadzovanie vysledkov z databazy

Příspěvekod CZechBoY » 01 led 2012 21:50

cože?
však tam dej normálně
$sql="SELECT * FROM veci WHERE tricka LIKE '$filtr'";
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

fili
Level 1.5
Level 1.5
Příspěvky: 102
Registrován: prosinec 11
Pohlaví: Muž
Stav:
Offline

Re: Zle vyhadzovanie vysledkov z databazy

Příspěvekod fili » 01 led 2012 22:11

Dal som a tu je vysledok:
Unknown character set: 'utf8_slovak_ci'
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /domains... on line 38
A riadok 38 je
while ($row=mysql_fetch_array($sql))

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Zle vyhadzovanie vysledkov z databazy

Příspěvekod CZechBoY » 01 led 2012 22:15

mno tak tam dej charset CP1250 když ho používáš na webu ne?
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

fili
Level 1.5
Level 1.5
Příspěvky: 102
Registrován: prosinec 11
Pohlaví: Muž
Stav:
Offline

Re: Zle vyhadzovanie vysledkov z databazy

Příspěvekod fili » 01 led 2012 22:27

skusil som cp1250_bin aj utf8_bin a vysledok je
Unknown character set: 'utf8_bin'

A co toto Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /domains... on line 38
nie je problem v tom?

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Zle vyhadzovanie vysledkov z databazy

Příspěvekod CZechBoY » 01 led 2012 23:00

v čem? máš někde prostě debilní nastavení charsetu
kde ten charset nastavuješ?
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
Ellrohir
nováček
Příspěvky: 49
Registrován: prosinec 11
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Zle vyhadzovanie vysledkov z databazy

Příspěvekod Ellrohir » 02 led 2012 00:52

ta chybová hláška znamená, že se funkci mysql_fetch_array() snažíš jako argument narvat něco, co nemá správnej formát...to jest předchozí funkce mysql_query(), kde do proměnný $sql přirazuješ sice prošla (není žádná chyba v syntaxi, kterou by odchytlo php), ale z databáze ten dotaz nedostal žádnej výsledek...čili pravděpodobně v proměnný $sql není nic a tomu se mysql_fetch_array() brání touhle chybovou hláškou
"Zprávy mají velikost, třeba i nulovou, a mají nějaký význam, třeba i žádný."

fili
Level 1.5
Level 1.5
Příspěvky: 102
Registrován: prosinec 11
Pohlaví: Muž
Stav:
Offline

Re: Zle vyhadzovanie vysledkov z databazy

Příspěvekod fili » 02 led 2012 10:25

No kodovanie som prestavil aj na stranke v kode php a rovnako aj v celej databaze,
aby to bolo vsetko rovanke, ale vysledok stale rovnaky.
A pokial ide o mysql_fetch_array(), tak ked tam nie je chyba, tak potom kde je chyby v dotaze sql?
Stale sa tocim v jednom kruhu, bud mi vyhadzuje vsetky polozky z databaze ako som uz pisal,
alebo mi vyhadzuje taketo chyby.


Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host