Portál AbcLinuxu, 29. července 2025 01:40


Dotaz: mysql_fetch_assoc() chyba

Petr Maleček avatar 9.2.2007 11:50 Petr Maleček | skóre: 29 | Plzeň - Bolevec
mysql_fetch_assoc() chyba
Přečteno: 1366×
Odpovědět | Admin
Zdravim, mam problem, kdyz pouziju tuto funkci, tak misto ocekavaneho vysledku mi dorazi zprava:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /DISK2/WWW/alptech.cz/3drc/web/new/index.php on line 84

radek 84 zacina $overeni = ...
 <?php 
           $zjisteni = mysql_query('SELECT jmeno FROM web_admin WHERE jmeno='.$jmeno.' AND heslo='.$heslo.'');
           $overeni = mysql_fetch_assoc($zjisteni); 
           if ($overeni == $jmeno) : {
           echo $overeni;}
           else : { echo($overeni); } ?>
           
           <?php endif; ?>
LinMuck, WinFuck :-P
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

9.2.2007 11:56 tessaract | skóre: 2 | Opava
Rozbalit Rozbalit vše Re: mysql_fetch_assoc() chyba
Odpovědět | | Sbalit | Link | Blokovat | Admin
$overeni je asociativní pole, tedy r. 84 má být: if ($overeni["jmeno"] == $jmeno)...
9.2.2007 11:59 tessaract | skóre: 2 | Opava
Rozbalit Rozbalit vše Re: mysql_fetch_assoc() chyba
To je jeden problém, a druhý je ten, že hodnoty selectu nejsou v uvozovkách... Rozhodně bych kontroloval návratovou hodnotu!
9.2.2007 11:57 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: mysql_fetch_assoc() chyba
Odpovědět | | Sbalit | Link | Blokovat | Admin
$zjisteni = ...
if (!$zjisteni) {
   die('Invalid query: ' . mysql_error());
}
$overeni = ...
Vás neučili, že se výsledek volání funkce má vždycky (hm, přinejmenším pokud s tím výsledkem dál pracuju) kontrolovat? :-)
Petr Maleček avatar 9.2.2007 12:24 Petr Maleček | skóre: 29 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: mysql_fetch_assoc() chyba
Zdravim, diky za rady. Kod jsem poupravil a vypada takto:

<?php 

$zjisteni = mysql_query('SELECT jmeno,heslo FROM web_admin WHERE jmeno=".$jmeno." AND heslo=".$heslo."');
$overeni = mysql_fetch_assoc($zjisteni); 
if (($overeni["jmeno"] == $jmeno) and ($overeni["heslo"] == $heslo)) : {
echo "Uzivatel nalezen";}
else : { echo "Uzivatel nenalezen"; }; 
?>
           
<?php endif; ?>
ale stejne stale nefunguje :-( ... stale pise "uzivatel nenalezen" prestoze zadavam spravne udaje.

Predem diky za dalsi rady
LinMuck, WinFuck :-P
Petr Maleček avatar 9.2.2007 12:26 Petr Maleček | skóre: 29 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: mysql_fetch_assoc() chyba
btw. PHP ovladam asi jako cinstinu, tak se omlouvam ze tak blbe chapu a delam hloupe chyby. Ale chybama se clovek uci ;-)
LinMuck, WinFuck :-P
9.2.2007 13:23 kaaja | skóre: 24 | blog: Sem tam něco | Podbořany, Praha
Rozbalit Rozbalit vše Re: mysql_fetch_assoc() chyba
Udelal bych neco takoveho:
<?php
$pjmeno = mysql_escape_string($jmeno); //nechceme prece aby nam to nekdo hacknul
$pheslo = mysql_escape_string($heslo);
$query = "SELECT jmeno FROM web_admin WHERE jmeno = '".$pjmeno."' AND heslo='".$pheslo."'";
$zjisteni =  mysql_query($query) // mozna by tu mel by link na databazi 
if (!$zjisteni){
  die('chybapri dotazu'.mysql_error());
}
$pocet=mysql_num_rows($zjisteni); //pocet radku
if ($pocet == 0){
   print 'nukdo nenalezen';
}else id ($pocet == 1 ){
   print 'uzivatel nalezen';
}else{
   print 'naslo se vice uzivatelu - divne';
}

?>
9.2.2007 13:29 maleprase | skóre: 28
Rozbalit Rozbalit vše Re: mysql_fetch_assoc() chyba
v prve rade bych ti doporucil aby sis ujasnil jaky je rozdil mezi ' a "

zacit muzes treba tady

tam se dozvis ze v ramci jendoduchych uvozovek ' ' se retezec neparsuje (krome \') takze to co posilas do mysql_query je dopismene tohle:

SELECT jmeno,heslo FROM web_admin WHERE jmeno=".$jmeno." AND heslo=".$heslo."

kdyz chces aby doslo k parsovani retezce a "expanzi" promennych $jmeno a $heslo musis pouzit " "

priklady najdes tady

o kousek dal na stejne strance se jeste pise o operatoru '.' a jinych uzitecnych funkci pro praci s retezci

v tvem pripade by se dalo pouzit napriklad:

$zjisteni = mysql_query("SELECT jmeno,heslo FROM web_admin WHERE jmeno='${jmeno}' AND heslo='${heslo}'");
9.2.2007 13:31 maleprase | skóre: 28
Rozbalit Rozbalit vše Re: mysql_fetch_assoc() chyba
tim jednoduche uvozovky ' ' samozrejme myslim apostrofy
Petr Maleček avatar 9.2.2007 13:50 Petr Maleček | skóre: 29 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: mysql_fetch_assoc() chyba
tak jsem to upravil takto:
<?php
            
            $pjmeno = mysql_escape_string($jmeno); 
            $pheslo = mysql_escape_string($heslo);
            $query = "SELECT jmeno FROM web_admin WHERE jmeno = '${pjmeno}' AND heslo='${pheslo}'";
            $zjisteni = mysql_query($query); 
            $pocet = mysql_num_rows($zjisteni); //pocet radku
            if ($pocet == 0) {
            print('nikdo nenalezen');}
            elseif id ($pocet == 1) {
            print('uzivatel nalezen');}
            else {
            print('naslo se vice uzivatelu - divne')}; ?>
            
            <?php endif; ?>
a pise to Parse error: syntax error, unexpected T_STRING, expecting '(' in /DISK2/WWW/alptech.cz/3drc/web/new/index.php on line 91, ale tomu uz fakt nerozumim :-(
LinMuck, WinFuck :-P
Petr Maleček avatar 9.2.2007 13:50 Petr Maleček | skóre: 29 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: mysql_fetch_assoc() chyba
tak jsem to upravil takto:
<?php
            
            $pjmeno = mysql_escape_string($jmeno); 
            $pheslo = mysql_escape_string($heslo);
            $query = "SELECT jmeno FROM web_admin WHERE jmeno = '${pjmeno}' AND heslo='${pheslo}'";
            $zjisteni = mysql_query($query); 
            $pocet = mysql_num_rows($zjisteni); //pocet radku
            if ($pocet == 0) {
            print('nikdo nenalezen');}
            elseif id ($pocet == 1) {
            print('uzivatel nalezen');}
            else {
            print('naslo se vice uzivatelu - divne')}; ?>
            
            <?php endif; ?>
a pise to Parse error: syntax error, unexpected T_STRING, expecting '(' in /DISK2/WWW/alptech.cz/3drc/web/new/index.php on line 91, ale tomu uz fakt nerozumim :-(
LinMuck, WinFuck :-P
9.2.2007 14:39 kaaja | skóre: 24 | blog: Sem tam něco | Podbořany, Praha
Rozbalit Rozbalit vše Re: mysql_fetch_assoc() chyba
moje chyba nahrad "elseif id" za "elseif"

p.s. tim, ze delas neco cemu neruzumis si akorat koledujes o problemy.
9.2.2007 14:41 kaaja | skóre: 24 | blog: Sem tam něco | Podbořany, Praha
Rozbalit Rozbalit vše Re: mysql_fetch_assoc() chyba
Pak je tam jeste jedna chybka v print('naslo se vice uzivatelu - divne')}; ?> print('naslo se vice uzivatelu - divne')}; ?> ma byt print('naslo se vice uzivatelu - divne');} ?>
mess avatar 9.2.2007 15:02 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: mysql_fetch_assoc() chyba
Zkus toto:
<?php       
    $pjmeno = mysql_escape_string($jmeno); 
    $pheslo = mysql_escape_string($heslo);
    $query = "SELECT jmeno FROM web_admin WHERE jmeno = '$pjmeno' AND heslo = '$pheslo'";
    $zjisteni = mysql_query($query); 
    $pocet = mysql_num_rows($zjisteni); //pocet radku

    if ($pocet == 0) {
        print('nikdo nenalezen');
    } elseif id ($pocet == 1) {
        print('uzivatel nalezen');
    } else {
        print('naslo se vice uzivatelu - divne');
    }
?>
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
Petr Maleček avatar 9.2.2007 19:14 Petr Maleček | skóre: 29 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: mysql_fetch_assoc() chyba
elseif id - proc je tam to ID ? kdyz ho tam necham, tak mi vypise chybu:
Parse error: syntax error, unexpected T_STRING, expecting '(' in /DISK2/WWW/alptech.cz/3drc/web/new/index.php on line 91
- a řádek 91 je právě ten endif id...

i když to id odeberu, tak script nefunguje. Stále hlásí, že uživatel nenalezen, přestože jsem zkoušel všechy (uživatelé i hesla jsou uložena necryptovaně - zatím teda)
LinMuck, WinFuck :-P
Petr Maleček avatar 9.2.2007 20:49 Petr Maleček | skóre: 29 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: mysql_fetch_assoc() chyba
Odpovědět | | Sbalit | Link | Blokovat | Admin
tak vyřešeno - chyba nebyla v tutom kódu, ale ve FORMu, ze ktereho ty udaje ziskaval :-D
LinMuck, WinFuck :-P

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.