Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wyświetlanie danych z MSQL
Kaluza
post 4.12.2010, 10:59:35
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 4.12.2010

Ostrzeżenie: (0%)
-----


Mam w bazie danych 3 tabele: ID, LOGIN i IMIE.
Jak zrobić aby po zalogowaniu się przez użytkownika wyświetlało się jego imię które jest w tabeli IMIE.

  1. <?php
  2.  
  3.  
  4. if (isset($_SESSION['user_id']) and isset($_SESSION['login']))
  5.  
  6.  
  7. {
  8.  
  9. echo "Jestes zalogowany. ";
  10.  
  11. echo "Twój login to: ";
  12.  
  13. echo $_SESSION['login'];
  14.  
  15.  
  16. }
  17.  
  18. else
  19.  
  20. {
  21.  
  22. echo "Nie jestes zalogowany";
  23.  
  24.  
  25.  
  26. }

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
blade-mrn
post 4.12.2010, 11:05:27
Post #2





Grupa: Zarejestrowani
Postów: 113
Pomógł: 11
Dołączył: 20.10.2009

Ostrzeżenie: (0%)
-----


Musisz stworzyć zapytanie wybierające imię za pomocą np. loginu a potem dostać się do danych zwróconych przez bazę za pomocą fetch_assoc()
  1. SELECT imie FROM tabela WHER login= login podany przez użytkowniak

Tylko nie wiem po co ci oddzielne tabele dla ID, LOGIN, IMIE kiedy to można trzymać w jednej tabeli.


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on to właśnie robi."
Albert Einstein
Go to the top of the page
+Quote Post
Kaluza
post 4.12.2010, 11:14:31
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 4.12.2010

Ostrzeżenie: (0%)
-----


Mój błąd. Wszystko mam w jednej tabeli o nazwie USERS
Czyli będzie:
  1. $imie = "SELECT imie FROM users WHERE login=$login"

  1. if ($result = $mysqli->imie($imie)) {
  2.  
  3. /* fetch associative array */
  4. while ($row = $result->fetch_assoc()) {
  5. printf ("$row["imie"]);
  6. }


Czy to tak będzie wyglądało ?



Go to the top of the page
+Quote Post
Webmasterr
post 4.12.2010, 11:21:16
Post #4





Grupa: Zarejestrowani
Postów: 71
Pomógł: 5
Dołączył: 7.08.2010

Ostrzeżenie: (0%)
-----


Cytat(Kaluza @ 4.12.2010, 11:14:31 ) *
Mój błąd. Wszystko mam w jednej tabeli o nazwie USERS
Czyli będzie:
  1. $imie = "SELECT imie FROM users WHERE login=$login"

  1. if ($result = $mysqli->imie($imie)) {
  2.  
  3. /* fetch associative array */
  4. while ($row = $result->fetch_assoc()) {
  5. printf ("$row["imie"]);
  6. }


Czy to tak będzie wyglądało ?


A nie

  1. printf ($row["imie"]);
?


--------------------

Darmowe e-booki (kliknij tutaj)
------------------------------------------------------------
Zapunktuj (kliknij tutaj) <--- Zarejestruj się i zobacz!
Darmowe doładowania telefonu, Eurogąbki itp.
------------------------------------------------------------
PHP 5, CSS 2.1, xHTML 1.1, JavaScript 1.7
Go to the top of the page
+Quote Post
Kaluza
post 4.12.2010, 11:23:50
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 4.12.2010

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3. $imie = "SELECT imie FROM users WHERE login=$login"
  4.  
  5.  
  6. if (isset($_SESSION['user_id']) and isset($_SESSION['login']))
  7.  
  8. if ($result = $mysqli->imie($imie)) {
  9.  
  10. /* fetch associative array */
  11. while ($row = $result->fetch_assoc()) {
  12. printf ($row["imie"]);
  13. }
  14.  
  15. {
  16.  
  17. echo "Jestes zalogowany. ";
  18.  
  19. echo "Twój login to: ";
  20.  
  21. echo $_SESSION['login'];
  22.  
  23. echo $POST['imie'];
  24.  
  25.  
  26. }
  27.  
  28. else
  29.  
  30. {
  31.  
  32. echo "Nie jestes zalogowany";
  33.  
  34.  
  35.  
  36. }


Coś nie działa.
Go to the top of the page
+Quote Post
blade-mrn
post 4.12.2010, 11:37:40
Post #6





Grupa: Zarejestrowani
Postów: 113
Pomógł: 11
Dołączył: 20.10.2009

Ostrzeżenie: (0%)
-----


Masz dużo błędów w kodzie.
Tu $imie = "SELECT imie FROM users WHERE login=$login" brakuje średnika, no i ja radziłbym umieścić to po tym jak sprawdzasz czy sesja trwa bo jeśli nie trwa to nic nie robisz. A już na pewno nie może to być przed start_session(). Brakuje paru klamerek od instrukcji warunkowych.
Skąd bierzesz ten login bo jeśli z formularza to brakuje $login = $_POST['login'] a jeśli z sesji to brakuje $login = $_SESSION['login']. Nie widzę tu połączenia z bazą danych.
A samo zapytanie łącznie z połączeniem może wyglądać mniej więcej tak:
  1. $polaczenie = mysql_connect('serwer', 'nazwa użytkownika', 'haslo uzytkownika');
  2. $baza = mysql_select_db('nazwa bazy',$polaczenie);
  3. $zapytanie = "SELECT imie FROM USERS WHERE login='$login'";
  4. $wynik = mysql_query($zapytanie, $polaczenie);
  5. $rekord = mysql_fetch_assoc($wynik);
  6. echo $rekord;


Jeśli jest tu gdzieś błąd to sorry ale jechałem z pamięci.

Ten post edytował blade-mrn 4.12.2010, 11:52:24


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on to właśnie robi."
Albert Einstein
Go to the top of the page
+Quote Post
Kaluza
post 4.12.2010, 13:15:33
Post #7





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 4.12.2010

Ostrzeżenie: (0%)
-----


Połączenie z bazą mam w innym pliku.
Login pobieram z sesji.
Niestety gdzie bym nie wstawił $imie to wywala errory.
Go to the top of the page
+Quote Post
blade-mrn
post 4.12.2010, 13:22:53
Post #8





Grupa: Zarejestrowani
Postów: 113
Pomógł: 11
Dołączył: 20.10.2009

Ostrzeżenie: (0%)
-----


Może byś tak podał treść tych błędów, to by znacznie ułatwiło sprawę bo o ile wiem jasnowidzów tu nie ma.


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on to właśnie robi."
Albert Einstein
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:38