[PHP] Odczytywanie danych z bazy i korzystanie z sesji


(Ryan370z) #1
$id = $_SESSION['id'];

$showuser = mysql_query (" SELECT exp, pn, msg FROM users WHERE id = '$id' ");

while ( $rekordyPN = mysql_fetch_row ( $showuser ) ) { list($_SESSION['nick'], $_SESSION['exp'], $_SESSION['pn'], $_SESSION['msg']) = $rekordyPN; }

echo("

Jesteś zalogowany jako: ".$SESSION['nick']." ID: ".$SESSION['id']." Wiadomości:".$_SESSION['msg']." Wyloguj
"); [/code]

Nie wiem czemu, ale echo () nie wyświetla wartości. Wg. mnie wszystko wgląda w porządku.


(Grzesie K) #2

Dodaj na początku:

error_reporting(E_ALL); [/code]

i zobacz jakie błędy zwróci. Ja proponuje pewne zmiany:

[code=php]$rekordyPN=mysql_fetch_row(mysql_query("SELECT exppnmsg FROM users WHERE id='$_SESSION[id]' LIMIT 1"));
$_SESSION['nick'], $_SESSION['exp'], $_SESSION['pn'], $_SESSION['msg'])=$rekordyPN;
echo '
';
echo 'Jesteś zalogowany jako: '.$_SESSION['nick'].'';
echo 'ID: '.$_SESSION['id'].'';
echo 'Wiadomości: '.$_SESSION['msg'];
echo 'Wyloguj';
echo ''; 


(Ryan370z) #3

Nadal nie działa :(. Coś musi być z zapytaniem.


(kubut) #4

Wyświetl sobie zapytanie, skopiuj i wklej do SQL PHPMyAdmina, często błąd z niego pomaga rozgryźć co jest nie tak. Spróbuj też podać zapytanie, w którym nazwę kolum ny nie podajesz w cudzysłowiu, tylko na czysto id=wartosc - w moim silniku bazy nie przyjmuje nazw tabeli w cudzysłowach.


(ra-v) #5
$rekordyPN=mysql_fetch_row(mysql_query("SELECT `exp`, `pn`, `msg` FROM `users` WHERE `id`='".$_SESSION['id']."' LIMIT 1"));$_SESSION['nick'], $_SESSION['exp'], $_SESSION['pn'], $_SESSION['msg'])=$rekordyPN; [/code]

[quote]
Nadal nie działa . Coś musi być z zapytaniem.
[/quote]

A błędu nie wyświetlał? To daj na początku kodu.
[code=php]('error_reporting', E_ALL); // wyżej napisano error_reporting(E_ALL); ale nie wiem czy to to samoini_set('display_errors', 'on');

(Grzesie K) #6

Z tego co wiem efekt z ini_set() powinien być identyczny, więc jaki błąd zwraca ci skrypt?


(Ryan370z) #7

Zapytanie działa, a nie pokazuje żadnych błędów co do kodu ;(


(Copycona) #8
$rekordyPN=mysql_fetch_row(mysql_query("SELECT `exp`, `pn`, `msg` FROM `users` WHERE `id`='".$_SESSION['id']."' LIMIT 1"));$_SESSION['nick'], $_SESSION['exp'], $_SESSION['pn'], $_SESSION['msg'])=$rekordyPN;[/code]
Zobacz, pobierasz sobie jakieś wartości z bazy, kolejno przypisując je do zmiennych, niby OK, ale:

z bazy - list() przypisze do zmiennej
[i]`exp`[/i] - [i]$_SESSION['nick'][/i]
[i]`pn`[/i] - [i]$_SESSION['exp'][/i]
[i]`msg`[/i] - [i]$_SESSION['pn'][/i]
[i]NULL[/i] - [i]$_SESSION['msg'][/i]

Jakby się coś nie zgadza, może jeszcze nick:
[code=php]"SELECT `nick`, `exp`, `pn`, `msg` FROM `users` WHERE `id`='".$_SESSION['id']."' LIMIT 1" 

? :)

a propos echa i kropek:
http://www.tarnaski.eu/blog/optymalizac ... -stringow/
http://php.net/manual/en/function.echo.php