Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Pobranie rekordu dla zalogowanego usera
Forum PHP.pl > Forum > Przedszkole
kondziu9516
Witam utworzyłem taką oto tabelkę w bazie danych:
  1. CREATE TABLE IF NOT EXISTS `uzytkownik` (
  2. `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `imie` varchar(100) COLLATE latin1_general_cs NOT NULL,
  4. `nazwisko` varchar(100) COLLATE latin1_general_cs NOT NULL,
  5. `nazwa` varchar(100) COLLATE latin1_general_cs NOT NULL,
  6. `nip` varchar(100) COLLATE latin1_general_cs NOT NULL,
  7. `tel` varchar(100) COLLATE latin1_general_cs NOT NULL,
  8. `login` varchar(30) COLLATE latin1_general_cs NOT NULL,
  9. `haslo` varchar(50) COLLATE latin1_general_cs NOT NULL,
  10. `email` varchar(100) COLLATE latin1_general_cs NOT NULL,
  11. `ocena` varchar(3) COLLATE latin1_general_cs NOT NULL DEFAULT '10',
  12. `kod` varchar(32) COLLATE latin1_general_cs NOT NULL,
  13. `data` datetime NOT NULL,
  14. `status` tinyint(1) DEFAULT '0',
  15. PRIMARY KEY (`id`)
  16. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs AUTO_INCREMENT=3 ;


Po zalogowaniu pobieram nick oraz ocene konta. Jednak pobiera mi ocene konta to co mam wpisane przy id 1.
A chciałbym aby pobierało dla każdego zalogowanego użytkownika osobno.

KOD w którym pobieram i chce zmienić to:
  1. <?php
  2. mysql_connect ("xxx", "xxx", "xxx"); //Łączysz Się z Bazą
  3. mysql_query ("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'"); //Wybierasz Bazę
  4. /* zapytanie do konkretnej tabeli */
  5. $wynik = mysql_query("SELECT * FROM uzytkownik")
  6. or die('Błąd zapytania');
  7. $nick = $_SESSION['login'];
  8.  
  9. if(mysql_num_rows($wynik) > 0) {
  10. echo ' <div class="subdiv2">
  11. <p class="top">&nbsp;</p>
  12. <h2 >Strefa Klienta</h2>';
  13.  
  14. if($r = mysql_fetch_assoc($wynik)) {
  15.  
  16. echo '<p align="right"><font size="3" color="red"><center>Zalogowany jako:<font size="3" color="black"> '.$nick.'</font> </font></b><br><br></p align></center>
  17. <font size="2" color="black" style="margin-left:30px;"><b>Ocena konta:</b><font size="2" color="green"><b> '.$r['ocena'].' %</b> <img src="images/pyt.png" title="Ocena rejestracji i zamówień przez ekipe.
  18. 10% uzyskuje się zaraz po prawidłowej rejestracji.
  19. Reszta % zostaje przyznana z upływem czasu."></font> </font></b><br><br>
  20. <center></u> <a href="user/logowanie.php?wylogowanie=tak"><font size="3" color="black"><b>Wyloguj</b></font></a><br><br>
  21. <a href="index.php?s=zmiana"><font size="2" color="blue"><b>Zmień dane</font></a><br><br>
  22. <a href="user/status/"><font size="2" color="orange"><b>Sprawdź status zlecenia</font></a><br></center>
  23. <p class="bot"></p>
  24.  
  25. </div>';
  26. }
  27. }
  28.  
  29.  
  30. ?>


Dokładnie chodzi mi o fragment
  1. '.$r['ocena'].'

Może trzeba tutaj to jakoś zdefiniować?
  1. $wynik = mysql_query("SELECT * FROM uzytkownik")
  2. or die('Błąd zapytania');


Nie mam już pomysłu bardzo proszę o pomoc. NAGRADZAM smile.gif
Lombi
Skrypt pobiera Ci wszystkie wyniki tylko Ty wyświetlasz pierwszy smile.gif
  1. while($r=mysql_fetch_assoc($wynik))
  2. {
  3. echo $r['ocena'].'<br>';
  4. }

Jeśli pobierasz tylko oceny wszystkich użytkowników to:
  1. $wynik = mysql_query("SELECT ocena FROM uzytkownik") or die('Błąd zapytania');

Natomiast jeśli chcesz ocenę lub kilka ocen do danego użytkownika i chcesz je wyświetlić to:
  1. $wynik = mysql_query("SELECT nazwa, ocena FROM uzytkownik WHERE nazwa='$nick'") or die('Błąd zapytania');

To przykład oczywiście. Zadziała jeśli pole "nazwa" w bazie przechowuje nick użytkownika zapisany w zmiennej sesyjnej login smile.gif
kondziu9516
Chodzi mi o to aby ocena wyświetliła się konkretnego użytkownika.

Przykładowo:
ID: 1 nick:admin ocena:100
ID: 2 nick:demo ocena:60

i jeśli zalogowany jest admin pobiera ocenę admina, a jeśli demo to ocenę demo.
Lombi
W takim wypadku zmodyfikuj zapytanie do bazy na kształt ostatniego z mojego poprzedniego postu i będzie hulać.
kondziu9516
A dałbyś rade mi to przerobić na gotowe?
Bo prubowałem już na kilka sposobów i nic...;(
GoOx
proszę.
  1. <?php
  2. mysql_connect ("xxx", "xxx", "xxx"); //Łączysz Się z Bazą
  3. mysql_select_db ("xxx");
  4. mysql_query ("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'"); //Wybierasz Bazę
  5. /* zapytanie do konkretnej tabeli */
  6. $nick = $_SESSION['login'];
  7. $wynik = mysql_query("SELECT nazwa, ocena FROM uzytkownik WHERE nazwa='$nick'") or die('Błąd zapytania');
  8.  
  9. if(mysql_num_rows($wynik) > 0) {
  10. echo ' <div class="subdiv2">
  11. <p class="top">&nbsp;</p>
  12. <h2 >Strefa Klienta</h2>';
  13.  
  14. if($r = mysql_fetch_assoc($wynik)) {
  15.  
  16. echo '<p align="right"><font size="3" color="red"><center>Zalogowany jako:<font size="3" color="black"> '.$nick.'</font> </font></b><br><br></p align></center>
  17. <font size="2" color="black" style="margin-left:30px;"><b>Ocena konta:</b><font size="2" color="green"><b> '.$r['ocena'].' %</b> <img src="images/pyt.png" title="Ocena rejestracji i zamówień przez ekipe.
  18. 10% uzyskuje się zaraz po prawidłowej rejestracji.
  19. Reszta % zostaje przyznana z upływem czasu."></font> </font></b><br><br>
  20. <center></u> <a href="user/logowanie.php?wylogowanie=tak"><font size="3" color="black"><b>Wyloguj</b></font></a><br><br>
  21. <a href="index.php?s=zmiana"><font size="2" color="blue"><b>Zmień dane</font></a><br><br>
  22. <a href="user/status/"><font size="2" color="orange"><b>Sprawdź status zlecenia</font></a><br></center>
  23. <p class="bot"></p>
  24.  
  25. </div>';
  26. }
  27. }
  28.  
  29.  
  30. ?>


Powinno działać smile.gif
Lombi
Zwraca Ci cokolwiek? Jakiś błąd czy dane z bazy?
Mogę pokazać to łopatologicznie smile.gif

Tabela w bazie o nazwie uzytkownik o kolumnach id. nick, ocena. Jej zawartość:
id|nick|ocena
1|stefan|50
2|roman|90
3|zenon|30

  1. $wynik = mysql_query("SELECT id, nick, ocena FROM uzytkownik WHERE id='2' AND nick='roman'");
  2. $r=mysql_fetch_assoc($wynik);
  3. print_r($r);


W Twoim przypadku nie wiem co jest przechowywane w $nick=$_SESSION['login']. Z nazwy zmiennej i dalszego kodu
  1. <center>Zalogowany jako:<font size="3" color="black"> '.$nick.'</font> </font></b><br><br></p align></center>

wynika ze jest to nick użytkownika, tyle że w twojej tabeli uzytkownik nie ma kolumny nick tylko nazwa i login. Może tu jest coś źle?
kondziu9516
Zrobiłem to w ten sposób:

  1. <?php
  2. mysql_connect ("xxx", "xxx", "xxx"); //Łączysz Się z Bazą
  3. mysql_query ("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'"); //Wybierasz Bazę
  4. /* zapytanie do konkretnej tabeli */
  5. $nick = $_SESSION['login'];
  6. $wynik = mysql_query("SELECT ocena FROM uzytkownik WHERE ocena='.$nick.'");
  7. $r=mysql_fetch_assoc($wynik);
  8. print_r($r);
  9.  
  10. if(mysql_num_rows($wynik) > 0) {
  11. echo ' <div class="subdiv2">
  12. <p class="top">&nbsp;</p>
  13. <h2 >Strefa Klienta</h2>';
  14.  
  15. if($r = mysql_fetch_assoc($wynik)) {
  16.  
  17. echo '<p align="right"><font size="3" color="red"><center>Zalogowany jako:<font size="3" color="black"> '.$nick.'</font> </font></b><br><br></p align></center>
  18. <font size="2" color="black" style="margin-left:30px;"><b>Ocena konta:</b><font size="2" color="green"><b> '.$r['ocena'].' %</b> <img src="images/pyt.png" title="Ocena rejestracji i zamówień przez ekipe.
  19. 10% uzyskuje się zaraz po prawidłowej rejestracji.
  20. Reszta % zostaje przyznana z upływem czasu."></font> </font></b><br><br>
  21. <center></u> <a href="user/logowanie.php?wylogowanie=tak"><font size="3" color="black"><b>Wyloguj</b></font></a><br><br>
  22. <a href="index.php?s=zmiana"><font size="2" color="blue"><b>Zmień dane</font></a><br><br>
  23. <a href="user/status/"><font size="2" color="orange"><b>Sprawdź status zlecenia</font></a><br></center>
  24. <p class="bot"></p>
  25.  
  26. </div>';
  27. }
  28. }
  29.  
  30.  
  31. ?>


Wydaje się być wszystko OK tylko nie pokazuje teraz jakby tego panelu z fragmentu

  1. echo ' <div class="subdiv2">
  2. <p class="top">&nbsp;</p>
  3. <h2 >Strefa Klienta</h2>';


a to:
  1. Zalogowany jako:<font size="3" color="black"> '.$nick.'

Jest na 100% git bo wczesniej dzialalo tylko teraz dodać chcę ocene.

To co nie tak jest ze nie pokazuje teraz tego panelu?
Bo to jest jako panel !
SCREEN:
Lombi
Cytat
ocena='.$nick.'

Jesteś pewien? smile.gif
Sądze że takie zapytanie nie zwraca rezultatu a więc to
Cytat
if(mysql_num_rows($wynik) > 0)

nie jest spełnione.
kondziu9516
HMM w takim razie co wstawić zamiast tego?
  1. ocena='.$nick.'


A reszta chyba jest ok no nie?
Lombi
Sądzę że @GoOx napisał już bardzo dokładna odpowiedź na to pytanie.
kondziu9516
No OKEJ
Tylko co podstawić pod nazwa?

  1. $wynik = mysql_query("SELECT nazwa, ocena FROM uzytkownik WHERE nazwa='$nick'") or die('Błąd zapytania');


OKEJ ! ! !
Już działa wielkie dzięki smile.gif
Nie doczytałem wcześniej

Oczywiście sypie się POMÓGŁ...smile.gif

Dodam jeszcze całość może się komuś przyda !

  1. <?php
  2. mysql_connect ("xxx", "xxx", "xxx"); //Łączysz Się z Bazą
  3. mysql_query ("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'"); //Wybierasz Bazę
  4. /* zapytanie do konkretnej tabeli */
  5.  
  6. $nick = $_SESSION['login'];
  7. $wynik = mysql_query("SELECT login, ocena FROM uzytkownik WHERE login='$nick'") or die('Błąd zapytania');
  8.  
  9. if(mysql_num_rows($wynik) > 0) {
  10. echo ' <div class="subdiv2">
  11. <p class="top">&nbsp;</p>
  12. <h2 >Strefa Klienta</h2>';
  13.  
  14. if($r = mysql_fetch_assoc($wynik)) {
  15.  
  16. echo '<p align="right"><font size="3" color="red"><center>Zalogowany jako:<font size="3" color="black"> '.$nick.'</font> </font></b><br><br></p align></center>
  17. <font size="2" color="black" style="margin-left:30px;"><b>Ocena konta:</b><font size="2" color="green"><b> '.$r['ocena'].' %</b> <img src="images/pyt.png" title="Ocena rejestracji i zamówień przez ekipe.
  18. 10% uzyskuje się zaraz po prawidłowej rejestracji.
  19. Reszta % zostaje przyznana z upływem czasu."></font> </font></b><br><br>
  20. <center></u> <a href="user/logowanie.php?wylogowanie=tak"><font size="3" color="black"><b>Wyloguj</b></font></a><br><br>
  21. <a href="index.php?s=zmiana"><font size="2" color="blue"><b>Zmień dane</font></a><br><br>
  22. <a href="user/status/"><font size="2" color="orange"><b>Sprawdź status zlecenia</font></a><br></center>
  23. <p class="bot"></p>
  24.  
  25. </div>';
  26. }
  27. }
  28.  
  29.  
  30. ?>


chodziło głównie o tą linijkę:

  1. $wynik = mysql_query("SELECT login, ocena FROM uzytkownik WHERE login='$nick'") or die('Błąd zapytania');
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.