PHP - Výpis dát z databázy
Zdravím, mám stránku "profil", v ktorej chcem zobrazovať nejaké údaje z databáze (napr. ID, nickname atď...) a nedarí sa mi naprogramovať to tak, aby to ukazovalo ID konkrétneho užívateľa, teda toho užívateľa, ktorý je prihlásený.
kód:
<?php
session_start();
$session_username = $_SESSION['user'];
if ($session_username == "") {
header("refresh=0; url=login.php");
}
function zisti_id() {
$mysql_server = "localhost";
$mysql_user = "root";
$mysql_password = "None";
$mysql_db = "uzivatelia";
$sqli = new mysqli($mysql_server, $mysql_user, $mysql_password, $mysql_db);
if ($sqli->connect_errno) {
printf("Connection failed: %s \n", $sqli->connect_error);
exit();
}
$sqli->set_charset("utf8");
$session_username = $_SESSION['user'];
$sql = mysqli_query($sqli, "SELECT * FROM users LIMIT 1");
$zisti = mysqli_fetch_array($sql, MYSQLI_BOTH);
echo $zisti["id"] = $session_username;
}
?>
Protože z databáze vybíráš prvního uživatele, bez ohledu na to, kdo je přihlášený, viz:
Podívej se na SQL dotazy a příkaz WHERE
Tady je pěkný český manuál. http://www.junext.net/mysql/
Vyskúšal som cez WHERE, a stále nič.
problém je ten, že u toho nemyslíš ?
Tak bohužiaľ. PHP sa učím LEN z internetu. Nechodím na žiadnu programovaciu školu, kde by som sa to mohol naučiť.
A nie, nepochopil som, čo tým myslíš. Čo mám teda napísať do "id="?
Ty s databází porovnáváš username (nickname nebo jak jej máš prostě pojmenovaný), ne id.
Veď aspoň tak mi to dáva logiku...
"SELECT * FROM users WHERE id='$session_username'" => "Označ všetko z users, kde id je $session_username". Takže databázy hovorím, aby vybrala to ID, pod ktorým je užívateľ prihlásený.
Co?
Předpokládám, že $session_username je například RayCodeUwU.
Předpokládám, že tam máš tabulku, ve které je mimojiné id (např. č. 2), nickname (například RayCodeUwU)...
A ty chceš:
Vyber vše z tabulky users když nickname je ten samý co v $session_username.
To ale neuděláš pomocí id='$session_username', když v id je např. číslo 2.
To musíš udělat pomocí nickname='$session_username'.
Jop, tak už to frčí xD. Ďakujem za help.
... Ale aj tak mi dáva viac logiku moja verzia, a nechápem prečo by to malo fungovať cez nickname='' ... :DD
Já psal: "problém je ten, že u toho nemyslíš".
Třeba toho nejsi vůbec schopen. To je logické, ne?
Tak to zjednoduším.
Máš tabulku users, ve které máš sloupce id a nickname.
V té tabulce je mnoho řádků, mezi nima řádek, kde id je číslo 2 a nickname je RayCodeUwU.
No a přihlášený user je RayCodeUwU a tedy ten nick je i v $session_username.
A ty chceš zjistit řádek, ve kterém je ve sloupci nickname uživatel RayCodeUwU, protože je v $session_username, a tedy použiješ nickname='$session_username'.
Tím vydoluješ řádek, který budeš mít v proměnné $zisti jako array, kde budeš mít hodnotu $zisti["id"] a $zisti["nickname"], no a ty chceš to id, takže vypíšeš $zisti["id"].
Eště to nechápeš?
To právě logiku nedává vůbec.