[ Príspevkov: 17 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53 | 53
NapísalOffline : 13.08.2007 19:15 | Chyba MySQL

S MySQL som síce začiatočník, no šiel som presne podľa knihy, avšak stále sa neviem vysporiadať s jednou chybou. Vytváram si admin pre web a používam prihlasénie cez MySQL. Vždy, keď sa pokúsim prihlásiť a zadávam pri tom na 100% správne údaje, vypíše mi túto chybu:

Kód:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ***\index.php on line 37


tu je kód od 33 po 56:

Kód:
if ($heslo_ok && $nick_ok) {

$poziadavka = "SELECT nick FROM admin WHERE nick='$nick' AND heslo=PASSWORD('$heslo')";
$vysledok = @mysql_query($poziadavka);
$riadok = mysql_fetch_array ($vysledok, MYSQL_NUM);

if ($riadok) {

ini_set('session.use_trans_sid', '1');
session_name('sid');
session_start();
$_SESSION['nick'] = $riadok[0];
header('Location: index.php?pid=logged');
exit();

}

else {

echo ('<h3>Zadali ste zlé prihlasovacie údaje! Svoj pokus zopakujte prosím.</h3>');

}

}


viete niekto čo s tým?
(tabuľka admin obsahuje iba jeden riadok, kde práve stĺpec nick a heslo)


Offline

Skúsený užívateľ
Skúsený užívateľ
Chyba MySQL

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35 | 35
Bydlisko: BA - WESTSIDE
NapísalOffline : 13.08.2007 19:33 | Chyba MySQL

Máš zle zostavený SQL query. Pridal som ti riadok do toho kódu na podrobný popis chyby, tak to spusti a napíš, čo ti to povedalo...
Kód:
if ($heslo_ok && $nick_ok) {

$poziadavka = "SELECT nick FROM admin WHERE nick='$nick' AND heslo=PASSWORD('$heslo')";
$vysledok = @mysql_query($poziadavka);

// TOTO SI TAM PRIDAJ A POVEDZ, CO TI NAPISALO
if (!$vysledok) { echo mysql_error();}

$riadok = mysql_fetch_array ($vysledok, MYSQL_NUM);

if ($riadok) {

ini_set('session.use_trans_sid', '1');
session_name('sid');
session_start();
$_SESSION['nick'] = $riadok[0];
header('Location: index.php?pid=logged');
exit();

}

else {

echo ('<h3>Zadali ste zlé prihlasovacie údaje! Svoj pokus zopakujte prosím.</h3>');

}

}


_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53 | 53
Napísal autor témyOffline : 13.08.2007 19:44 | Chyba MySQL

Kód:
Illegal mix of collations (cp1250_bin,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='


Offline

Skúsený užívateľ
Skúsený užívateľ
Chyba MySQL

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35 | 35
Bydlisko: BA - WESTSIDE
NapísalOffline : 13.08.2007 20:03 | Chyba MySQL

Fíha, s týmto som sa ešte nestretol :) .


... 5 min hľadanie v Googli ...


Ok, zdá sa, že to mám... Na základe tejto diskusie http://lists.mysql.com/mysql/187156 si myslím, že spustenie tohoto kódu v MySQL
Kód:
SET NAMES 'cp1250_bin';
ti môže pomôcť...

Ešte ak by si sem napísal, čo ti vráti MySQL po spustení kódu
Kód:
SHOW VARIABLES LIKE ''%char%;


Ešte aby som to upresnil, SQL query máš zostavený dobre :) .


_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Chyba MySQL

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25 | 25
Bydlisko: SK-Martin
NapísalOffline : 14.08.2007 7:29 | Chyba MySQL

pepek92 píše:
Kód:
Illegal mix of collations (cp1250_bin,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='

základná a najbežnejšia chyba o ktorej sa v knihách zrejme hneď tak skoro nedočítaš,
je to klasický problém, nemáš správne nastavené kodovanie, presnejšie máš to pomiešané a to ešte nedovoleným spôsobom,
collate čiže porovnanie má byť nastavené na takú hodnotu v akom je uložený ten skript, čiže keď si skript po vytvorení ukladáš, tak nastavíš napríklad kodovanie windows-1250, potom v DB musíš nastaviť "collate"(EN) alebo "porovnání"(CZ) alebo "zotriedenie"(SK) na "cp1250_bin"

namiesto cp1250_bin môžeš použiť aj "cp1250_general_ci"

set names 'cp1250_bin'; si pridaj do skriptu ak máš v DB nastavenú položku "Overenie MySQL spojenia: cp1250_bin"
ak si na hostingu, kde toto nastavenie sa nedá zmeniť, a spravidla je defaultne nastavené na utf8_unicode_ci, tak musíš napísať aj set names 'utf8';

snáď sa ti podarí rozlúsknuť tento problém, ono to je zložitejšie ako sa zdá,
takže pre teba neostáva nič iné len pokusy a pokusy až kým to nepochopíš a skript nerozbeháš,

na písanie a ukladanie skriptov doporučujem PSPad alebo notepad++, klasický notepad z Windowsu má v veľmi obmedzené možnosti a preto je na takúto prácu nevhodný

do budúcna však doporučujem používať rašej UTF-8 znakovú sadu/kodovanie, predídeš tým mnohým problémom

pri písaní skriptov doporučujem, tak ako to písal aj p360t, doplniť skript chybovými hláškami, po každom dopyte na DB treba jeho overenie či sa vôbec vykonal, a ak nie, tak prečo (vypíše chybovú hlášku, na základe tohto výpisu môžeš potom odstraňovať chyby)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53 | 53
Napísal autor témyOffline : 14.08.2007 11:04 | Chyba MySQL

Ďakujem, už to ide, zmenil som formát db na utf aj celý web a je všetko v 100% poriadku :)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53 | 53
Napísal autor témyOffline : 14.08.2007 19:45 | Chyba MySQL

Nechcem kvôli tomu zakladať novú tému, tak sa pýtam opäť tu. Vložil som do databázy s kódovaním UTF8_bin text zo stránky s kódovaním tiež UTF-8. Po načítaní textu na stránke sa namiesto znakov s mäkčeňmi zobrazovali čierne kosoštvorce s otáznikmi. Neviete prečo to robí? Ďakujem


Offline

Užívateľ
Užívateľ
Chyba MySQL

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25 | 25
Bydlisko: SK-Martin
NapísalOffline : 15.08.2007 7:40 | Chyba MySQL

a v DB máš ten text s diakritikou?
a pozri si ešte raz môj predošlý príspevok, najmä to o "Overenie MySQL spojenia"
ide o to, či máš naozaj úplne všetko riadne nastavené, alebo si na niečo zabudol
alebo ešte skús dať namiesto "utf8_bin" toto: "utf8_unicode_ci",


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53 | 53
Napísal autor témyOffline : 15.08.2007 11:41 | Chyba MySQL

Skúšal som a dospel som k záveru, že jediné písmeno, ktoré takto robí neplechu je malé "č" (veľké nie) skúšal som úplne všetko a nič. Na webe je utf8 a v databáze utf8_unicode_ci :roll:


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53 | 53
Napísal autor témyOffline : 15.08.2007 13:02 | Chyba MySQL

Vyriešil som to aj keď nepriamo, ale predsa. Vždy pri pridávaní textu do db sa najskôr skontroluje, či je v texte písmeno "č" a následne sa premenuje na *c*:

Kód:
ereg_replace("č", "*c*", $data)


Potom, v prípade výberu textu z databázy bude fungovať opačný proces:

Kód:
ereg_replace("\*c\*", "č", $riadok["1"])


Offline

Správca fóra
Správca fóra
Chyba MySQL

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 15.08.2007 13:15 | Chyba MySQL

skus napr. utf8_general_ci


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53 | 53
Napísal autor témyOffline : 15.08.2007 13:17 | Chyba MySQL

pepek92 píše:
Na webe je utf8 a v databáze utf8_unicode_ci :roll:


Je to už jedno, ide to pomocou môjho spôsobu, ale aj tak ďakujem za pomoc :).


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53 | 53
Napísal autor témyOffline : 16.09.2007 10:24 | Chyba MySQL

Opäť sa obraciam na vás, zase si neviem rady. Budujem novú verziu jedného môjho webu, a zatiaľ len skúšam. Vytvoril som si testovaciu tabuľku v databázy (zotriedenie cp1250_bin) a web je tiež v windows-1250. Pomocou jednoduchého formulára som skúšal pridávať slová a efekt bol taký, že písmenká ľ, ť, č, ď a ň mi zobrazovalo ako ?. Skúšal som všetko, čo ma napadlo, viete mi s tým niekto poradiť. Už som z toho zúfalí (o utf nechcem ani počuť).


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53 | 53
Napísal autor témyOffline : 16.09.2007 10:44 | Chyba MySQL

Už som to vyriešil, do skriptu som pridal

Citácia:
mysql_query("SET CHARACTER SET cp1250", $mysql_connect);


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53 | 53
Napísal autor témyOffline : 03.10.2007 16:55 | Chyba MySQL

Tak, mám opäť otázku. Skúsil som zálohovať aktuálnu databázu na mojom phpBB2 fóre (cp1250) a potom som ju dal do fóra, ktoré mám na localhost-e v mojom počítači. Všetko ide v poriadku, no na fóre sa mi ukazuje namiesto č otáznik. V databáze je to správne. Skúsil som príkaz:

Kód:
SET CHARACTER SET cp1250


a to pomohlo. Prečo mi predtým ukazovalo namiesto "č" iba "?". Chyba bola na fóre alebo kde potom?


Offline

Užívateľ
Užívateľ
Chyba MySQL

Registrovaný: 22.11.05
Prihlásený: 29.01.23
Príspevky: 712
Témy: 25 | 25
Bydlisko: SK-Martin
NapísalOffline : 03.10.2007 23:02 | Chyba MySQL

to nás skúšaš či čo? alebo trpíš "samovravou"?
set charakter set ti zabezpečuje komunikáciu scriptu s db v správnom kódovaní, novšie mysql(tuším od verzie 4.2.x) toto vyžadujú


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.01.07
Prihlásený: 29.03.20
Príspevky: 660
Témy: 53 | 53
Napísal autor témyOffline : 04.10.2007 14:07 | Chyba MySQL

mokus píše:
novšie mysql(tuším od verzie 4.2.x) toto vyžadujú


toto som chcel vedieť, totiž nechápal som prečo mi to na hostingu nerobilo a u mňa už hej, dakujem


 [ Príspevkov: 17 ] 


Chyba MySQL



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

chyba mysql

v Databázy

5

380

29.01.2013 10:35

Josh

V tomto fóre nie sú ďalšie neprečítané témy.

Chyba MySQL

v Správy pre vedenie fóra

1

1091

20.02.2008 18:36

JanoF

V tomto fóre nie sú ďalšie neprečítané témy.

Chyba v MySQL

v Databázy

2

336

18.12.2012 16:35

mayo505

V tomto fóre nie sú ďalšie neprečítané témy.

CHYBA MYSQL vo Viste

v Operačné systémy Microsoft

0

385

13.06.2008 15:41

allan

V tomto fóre nie sú ďalšie neprečítané témy.

mysql chyba -> presmerovanie

v Databázy

1

611

19.01.2011 21:08

emer

V tomto fóre nie sú ďalšie neprečítané témy.

CMS alebo MySQL chyba

v Redakčné systémy

4

758

14.08.2008 9:55

Toxic

V tomto fóre nie sú ďalšie neprečítané témy.

chyba pri spusteni mysql

v Databázy

0

592

10.06.2010 15:09

myxall

V tomto fóre nie sú ďalšie neprečítané témy.

Mysql chyba pri importe

v Databázy

11

886

09.03.2011 21:30

coldak

V tomto fóre nie sú ďalšie neprečítané témy.

syntax chyba Mysql UPDATE

v PHP, ASP

8

906

11.04.2008 20:50

bruno.b

V tomto fóre nie sú ďalšie neprečítané témy.

Kde je chyba ? mysql

v Databázy

4

700

21.05.2008 19:46

tommy70777

V tomto fóre nie sú ďalšie neprečítané témy.

chyba pri presune fóra-MySQL

v Redakčné systémy

5

645

16.07.2011 18:13

psichac

V tomto fóre nie sú ďalšie neprečítané témy.

Chyba pri odoslaní údajov do MySQL

v PHP, ASP

5

441

22.04.2014 16:59

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

Častá chyba načítania stránky (...dočasná chyba DNS).

v Poskytovatelia internetu

14

1480

29.05.2019 11:48

Jaro_N

V tomto fóre nie sú ďalšie neprečítané témy.

Chyba 101 (net::ERR_CONNECTION_RESET): Neznáma chyba.

v Sieťové a internetové programy

0

2904

26.02.2011 11:36

000kiko000

V tomto fóre nie sú ďalšie neprečítané témy.

MysQl

v Databázy

2

781

28.10.2009 19:05

BYNGY

V tomto fóre nie sú ďalšie neprečítané témy.

MySql

v Databázy

15

2301

26.03.2008 12:48

marekkk



© 2005 - 2024 PCforum, edited by JanoF