Autor Zpráva
svanda777
Profil
Dobrý den,

na svých stránkách mám přihlašovací formulář ve kterém si ověřuji jestli uživatel existuje. Tento dotaz funguje, ale poté chci zjistit id toho uživatele. Můj kód vypadá takto:

$sql = mysql_query("SELECT `id_uzivatele` FROM `uzivatele` WHERE `uzivatelske_jmeno` = '$login' AND `heslo` = '$md5heslo' LIMIT 0, 30 ") or die(mysql_error());
echo "id je: ".$sql ;

Vypisuje to Resource id #10
Someone
Profil
Jméno a hesl oby mělo být jedinečné. případně jen jméno, takže limit můžeš vypustit a bylo by to asi takhle:
$sql = mysql_query("SELECT id_uzivatele FROM uzivatele WHERE uzivatelske_jmeno = '".$login."' AND heslo = '".$md5heslo."'");
$id = mysql_result($sql,0);
$pocet = mysql_num_rows($sql);
if ($pocet == 1) {
   echo "id je: ".$id;
}
edit: přidal jsem podmínku na kontrolu počtu záznamů (podmínka předpokládá, že se nevyskytuje víc než jeden záznam pro stejnou kombinaci Jméno, Heslo)
mimochodec
Profil
$qry = "SELECT id_uzivatele FROM uzivatele WHERE uzivatelske_jmeno = '".$login."' AND heslo = '".$md5heslo."' LIMIT 1";
$vysledek=mysql_query($qry);
$radku=mysql_num_rows($vysledek);

if ($radku>0) {
  while ($zaznam=MySQL_Fetch_Array($vysledek)):
    echo "id je: ". $zaznam["id_uzivatele"];
  endwhile;
};
Someone
Profil
mimochodec:
Proč tak složitě přes cyklus, když se jedná jen o jeden záznam?
mimochodec
Profil
Someone:
Proč tak složitě přes cyklus, když se jedná jen o jeden záznam?

Nebo taky nula záznamů.
Someone
Profil
mimochodec:
Dobře, ale to nic nemění na tom, že je cyklus zbytečný... To zda je tam aspoň ten jeden kontroluje podmínka, kterou jsi uvedl v [#3]. Tudíž ji tam mohu doplni také..
svanda777
Profil
Děkuji moc
mimochodec
Profil
Someone:
Dobře, ale to nic nemění na tom, že je cyklus zbytečný

OK, máš pravdu. Jde jen o mou lenost. Mám bloky kódu, které používám, aniž bych se nad nimi zamýšlel. Má to svoje výhody, v tomto případě je to trochu nadbytečné.
svanda777
Profil
Ještě bych se chtěl zeptat na jednu věc a připadá mi zbytečné zakládat nové téma.

Na stránkách mám ještě formulář na přidání příspěvku a do MySQL se uloží id_uzivatele, ale pak když příspěvky vypisuji bych potřeboval uživatelské jméno.

Přikládám kód:
 $Zjisteni_uzivatele = "SELECT  `uzivatelske_jmeno` FROM `uzivatele`  WHERE `id_uzivatele` = '$id_uzivatele' ";
  $uzivatel_dotaz = mysql_query($Zjisteni_uzivatele) or die(mysql_error()); //Vytvoříme výsledek MySQL dotazu
  $uzivatel = mysql_result($uzivatel_dotaz);
  $uzivatel1 = mysql_fetch_array($uzivatel)  ;

Hází mi to tuto chybu:
Warning: mysql_result() expects at least 2 parameters, 1 given in /home/users/Svanda777/soubory.hys.cz/web/casti/texty/novinky.php on line 11 Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /home/users/Svanda777/soubory.hys.cz/web/casti/texty/novinky.php on line 12
Someone
Profil
Mysql_fetch_array je tady zbytečné:
 $Zjisteni_uzivatele = "SELECT  `uzivatelske_jmeno` FROM `uzivatele`  WHERE `id_uzivatele` = '$id_uzivatele' ";
  $uzivatel_dotaz = mysql_query($Zjisteni_uzivatele) or die(mysql_error()); //Vytvoříme výsledek MySQL dotazu
  $uzivatel = mysql_result($uzivatel_dotaz,0); // chybí ti tam druhý parametr (n-tý řádek)
$uzivatel1 = mysql_fetch_array($uzivatel) ;
Casero
Profil
svanda777:
Tak si přečti, co je v té chybě, ne?!

mysql_result() expects at least 2 parameters, 1 given
Mrknu do manuálu na funkci mysql_result a ona opravdu očekává nejméně 2 parametry!

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: