Zdravim,
mám toto:
$sql = "SELECT * FROM users;";
$vysledek = MySQL_Query($sql, $spojeni);
$zaznam = MySQL_Fetch_Row($vysledek);
if($zaznam[1]=$nick && $zaznam[2]=$heslo)
ale potřeruji aby bola splnena podmienka len kedy bude ten $zaznam[1] a [2] ze stejného řádku. neboli aby měli stejné ID $zaznam[0]
Děkuji!
mysql_fetch_* nacte vzdy jeden radek, nikdy ne pulku jednoho a druhou pulku z jinyho, takze to bude vzdy ze stejneho radku
nastuduj si rozdil mezi = a ==, dale pak mysql_fetch_assoc, pouziti mysql_error
Vaše řešení má mouchy. Chybně zadaná podmínka je pouze drobnost. Hlavní problém je ta podstata.
To co jste napsal, udělá jen to, že vezme pouze první záznam řádku v tabulce users a porovnává jméno a heslo. Takže podmínka by byla splněna jen tehdy, pokud se přihlásí ten uživatel, který je uveden na prvním místě (řádku). Ostatní maji smůlu.
Řešení jsou dvoje. A to buď na úrovni SQL nebo na úrovni PHP.
Pomocí SQL: Stačí upravit dotaz: "SELECT * FROM users WHERE nick='$nick' AND heslo='$heslo';". Potom stačí podmínku upravit na existenci uživatele ($zaznam==false).
Pomocí PHP: Musíte volat MySQL_Fetch_Row() vícetkrát až na konec záznamu. K tomu použijete cyklus: while($zaznam = MySQL_Fetch_Row($vysledek)) { if() } Uvnitř cyklu provedete vámi uvedenou podmínku.
První varianta pomocí SQL je ideální.
Ty názvy sloupců v dotazu samozřejmě podle toho co tam máte použité.
Děkuji.
Ty == tam mám akorát teď když jsem to sem z paměti psal tak jsem udělal malou chybku :-)
Dobře děkuji, jdu na tu sql variantu :-)
Mozna by bylo dobre zminit, aby aspon nick byl klicem/indexem v te sql tabulce.