Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mysql_fetch_assoc
Forum PHP.pl > Forum > Przedszkole
'poczatkujacy'
Witam, mam pytanko, bo zrobilem sobie taki maly serwis internetowy z systemem rejestracji uzytkownikow i ich logowaniem. No i po zalogowaniu funkcja mysql_fetch_assoc wyswietlam ich dane. No i mam kilka pytan. Czy jest mozliwe wyswietlenie poszczegolnych danych z uzyciem tej funkcji. Jest to troszke skomplikowane o co mi chodzi, ale mam nadzieje ze zrozumiec. Otoz chcialbym zeby mysql_fetch_assoc bylo tak jak jest ale zeby nie wyswietlalo danych tylko zamienilo na zmienne np: $imie, $nazwisko itp abym mogl w dowolnym miejscu skryptu wstawic ta owa zmienna. Mam nadzieje ze zrozumieliscie o co chodzi, dlatego prosze o pomoc czy jest cos takiego mozliwe smile.gif
tiraeth
  1. <?php
  2. $row = mysql_fetch_assoc($result);
  3.  
  4. foreach($row as $key => $value)
  5. {
  6.  ${$key} = $value;
  7. }
  8. ?>

questionmark.gif
brekmar
A mozna troszeczke jasniej, jak ten caly skrypt dziala smile.gif
SongoQ
Tam jest tylko petla foreach, jesli tego nie rozumiesz to zapraszam do manuala. Troche sie dziwie przeciez to sa podstawy co tu nie mozna rozumiec.
'poczatkujacy'
No troszke zle sprecyzowalem o co chodzi. Bo mam taki skrypt:
  1. <?php
  2. ?>
  3. <html>
  4.  
  5. <head>
  6. <title></title>
  7. </head>
  8.  
  9. <body>
  10.  
  11. <?php
  12.  
  13.  
  14. $db = @mysql_connect( 'localhost', 'root', '' ) or die( 'Nie można połączyć z bazą!' );
  15.  
  16. @mysql_select_db( 'uzytkownicy' ) or die( 'Nie można wybrać bazy!' );
  17.  
  18. if( !isset( $_SESSION[ 'user' ] ) )
  19. {
  20.  if( isset( $_POST[ 'loginGo' ] ) )
  21.  {
  22. $dane = mysql_query( &#092;"SELECT *
  23. FROM logowanie
  24. WHERE login = '\".$_POST[ 'loginName' ].\"' AND
  25. haslo = '\".$_POST[ 'password' ] .\"' LIMIT 0, 100&#092;" ) or die (mysql_error());
  26.  
  27. $userData = mysql_fetch_assoc( $dane );
  28. if( $userData[ 'nr' ] > 0 )
  29. {
  30.  $_SESSION[ 'user' ] = $userData;
  31.  header( 'Location: '.$_SERVER[ 'PHP_SELF' ] );
  32. }
  33. else
  34. {
  35.  echo 'Podałeś złe hasło lub login, sprobuj jeszcze raz';
  36. }
  37.  }
  38.  else
  39.  {
  40. echo ('
  41. <form action=\"\" method=\"post\">
  42.  Login: <input type=\"text\" name=\"loginName\"/><br/>
  43.  Hasło: <input type=\"password\" name=\"password\"/><br/>
  44.  <input type=\"submit\" name=\"loginGo\" value=\"Zaloguj\"/><br/>
  45. </form>
  46.  ');
  47.  }
  48. }
  49. else
  50. {
  51.  echo 'Witaj w serwisie. Jesteś zalogowany!<br/>';
  52.  print_r( $_SESSION[ 'user' ] );
  53. }
  54.  
  55.  
  56.  
  57. ?>
  58.  
  59. </body>
  60.  
  61. </html>
  62. <?php
  63. ?>

No i tu jest problem, wszystko dziala, jak nalezy, ale po zalogowaniu wypisuje wszystkie dane:
Array ( [nr] => 1 [login] => pap [haslo] => 123456 [email] => pap@wp.pl [imie] => pap [nazwisko] => pap )
A ja bym chcial zeby ta funkcja dzialala w taki sposob ze zwraca zmienne typu $imie, $haslo, $nazwisko, itp Bo mam zamiar wrzucic tam tekst i chce w ten tekst powstawiac zmienne typu 'Masz na imie "$imie".....' itd tak ze obojetnie kto by sie zalogowal beda sie wyswietlac jego dane. Mysle ze teraz lepiej sprecyzowalem o co chodzi. Nawet mam jaka taka koncepcje jakby taki skrypt mial dzialac tylko nie wiem jak to napisac w php. Bo ta fraza
  1. <?php
  2. print_r( $_SESSION[ 'user' ] );
  3. ?>
no wypisuje te dane wszystkie, no to wymyslilem zeby nie wstawiac print tylko zeby z tego powyciagal zmienne, czy jest to wogole mozliwe?questionmark.gifquestionmark.gif Jesli nie no to prosilbym o pomoc jak przerobic caly tewn skrypt zeby otrzymac te zmienne.
SongoQ
No to zwroc sobie tablice i bedzie ok.
'poczatkujacy'
Tos mi odpowiedzial, moze troszke wiecej, jakis przyklad w php ja nie jestem profesjonalista.
SongoQ
$iNr = userData['nr'];
$szImie = userData['imie'];

itd
'poczatkujacy'
Sory ale nie dziala to co mi napisales. Probowalem to wpisac w kazde miejsce i nie dziala, wypisuje mi blad:
Parse error: parse error, unexpected '[' in...
Prosze o inna propozycje.
nospor
Nie wnikam o co chodziło, ale @SongoQ zjadł $
  1. <?php
  2.  
  3.  $iNr = $userData['nr'];
  4. $szImie = $userData['imie'];
  5. //itd
  6.  
  7. ?>
'poczatkujacy'
No teraz juz bledu nie wyswietla, ale jak napisze
print ("Twoje imie: $szImie ");
to mi nie wypisuje zmiennej sad.gif.
nospor
I teraz nasuwa sie pytanie: gdzie ty wyswietlasz to oraz gdzie ty inicjujesz te zmienne?

pokaż nowy caly kod
'poczatkujacy'
  1. <?php
  2. ?>
  3. <html>
  4.  
  5. <head>
  6. <title></title>
  7. </head>
  8.  
  9. <body>
  10.  
  11. <?php
  12.  
  13.  
  14. $db = @mysql_connect( 'localhost', 'root', '' ) or die( 'Nie można połączyć z bazą!' );
  15.  
  16. @mysql_select_db( 'poleceni' ) or die( 'Nie można wybrać bazy!' );
  17.  
  18. if( !isset( $_SESSION[ 'user' ] ) )
  19. {
  20.  if( isset( $_POST[ 'loginGo' ] ) )
  21.  {
  22. $dane = mysql_query( &#092;"SELECT *
  23. FROM logowanie
  24. WHERE login = '\".$_POST[ 'loginName' ].\"' AND
  25. haslo = '\".$_POST[ 'password' ] .\"' LIMIT 0, 100&#092;" ) or die (mysql_error());
  26.  
  27. $userData = mysql_fetch_assoc( $dane );
  28. $iNr = $userData['nr'];
  29.  $szImie = $userData['imie'];
  30. if( $userData[ 'nr' ] > 0 )
  31. {
  32.  $_SESSION[ 'user' ] = $userData;
  33.  header( 'Location: '.$_SERVER[ 'PHP_SELF' ] );
  34. }
  35. else
  36. {
  37.  echo 'Podałeś złe hasło lub login...';
  38. }
  39.  }
  40.  else
  41.  {
  42. echo ('
  43. <form action=\"\" method=\"post\">
  44.  Login: <input type=\"text\" name=\"loginName\"/><br/>
  45.  Hasło: <input type=\"password\" name=\"password\"/><br/>
  46.  <input type=\"submit\" name=\"loginGo\" value=\"Zaloguj\"/><br/>
  47. </form>
  48.  ');
  49.  }
  50. }
  51. else
  52. {
  53.  echo 'Jesteś zalogowany!<br/>';
  54.  print (&#092;"Twoje imie: $iNr \");
  55.  }
  56.  
  57.  
  58.  
  59. ?>
  60.  
  61. </body>
  62.  
  63. </html>
  64. <?php
  65. ?>
nospor
nic dziwnego, przecież ty print ("Twoje imie: $iNr "); dajesz gdy w sesji jest obiekt user. A inicjujesz gdy gosciu sie loguje, więc one się nawzajem wykluczają. Po zalogowaniu wkladaj do sesji $iNr, to będzie widoczne ale z tablicy sesji a nie tak sobie. Wogóle to kombinujesz. Skoro masz obiekt(tablice) user w sesji to tam masz wszystkozawarte i poco kombinowac?
Zyce se utrudniasz
'poczatkujacy'
No napisalem na poczatku ze nie chce zeby mi wszystkie dane wyswietlil, potrzebuje zmienne, wiec gdzie mam to wstawic?questionmark.gif?
nospor
A kto ci każe wszystko wyswietlac. Wyswietlaj to co chesz:
  1. <?php
  2.  
  3. echo $_SESSION[ 'user' ]['nr'];
  4. echo $_SESSION[ 'user' ]['imie'];
  5.  
  6. ?>


A jak juz sie bardzo upierasz (tam gdzie do sesji wwalasz):
  1. <?php
  2.  
  3. $_SESSION[ 'user' ] = $userData;
  4. $_SESSION[ 'imie' ] = $userData['imie'];
  5. //itd
  6.  
  7. ?>
'poczatkujacy'
No wporzadku wszystko dziala tak jak nalezy. Dzieki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.