Autor Zpráva
Martin21000
Profil
Zdravím, mám takovou hloupou otázku, u které popravdě ani nevím jestli tu už nebyla protože nevím pod kterým dotazem to tu na fóru hledat. Potřeboval bych aby se mi při přihlašování na stránku přetáhly do SESSION více méně všechny údaje z tabulky.

Zatím jak jsem to pokoušel vytvořit:
$result = mysql_query("SELECT * FROM uzivatel WHERE email = '$email'");
                  while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
                        {
                        $row['jmeno'] = $_SESSION['jmeno'];
                        $row['prijmeni'] = $_SESSION['prijmeni'];
                        $row['email'] = $_SESSION['email'];
                        $row['heslo'] = $_SESSION['heslo'];
                        $row['mesto'] = $_SESSION['mesto'];
                        $row['ulice'] = $_SESSION['ulice'];
                        $row['prava'] = $_SESSION['prava'];
                        }

Ale píše mi to u každého řádku Notice: Undefined index. Děkuji za rady.

Jen mě prosím nekritizujte, jsem v PHP nový :-)
Alphard
Profil
Máte tam opačný směr. Cyklus ale ani není nutný, mělo by fungovat prosté
$_SESSION['user'] = mysql_fetch_assoc($result);
S tím, že mysql_* extenze bude v dalších verzích PHP zrušena. Není příliš prozíravé používat ji.
Martin21000
Profil
Krása, díky moc!

Teď už jenom drobná chybička, když ten tvůj kód dosadím:
$result = mysql_query("SELECT * FROM uzivatel WHERE email = '$email'");
                        $_SESSION['jmeno'] = mysql_fetch_assoc($result);
                        $_SESSION['prijmeni'] = mysql_fetch_assoc($result);

Už mi to sice nehází žádnou chybu, ale na další stránce se v $_SESSION['jmeno'] ukazuje jméno - Array, nevíš v čem bude problém?
Alphard
Profil
Funkce mysql_fetch_assoc() při úspěchu vrací, jak praví manuál, pole, tj. array. Já jsem ho v [#2] celé ukládal pod klíč user. Takže už nic nevyjmenovávat, nechat jen ten jeden řádek a přímo použít např. $_SESSION['user']['jmeno'].
Martin21000
Profil
Děkuji už to funguje :-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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