Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wirtualny portfel
Forum PHP.pl > Forum > Przedszkole
sciagawa
Napisałem skrypt portfela na mojej stronie, lecz mam pewien problem.
Mianowicie chciałbym by użytkownik logujący się na swoje konto miał pokazane na stronie głównej SWÓJ rekord "żetony" z tabeli uzytkownicy ze swojego id lub nicku.

Skrypt wygląda tak:

  1. <?php
  2.  
  3. if (!$link = mysql_connect('xxx', 'xxx', 'xxx')) {
  4. echo 'Nie można nawiązać połączenia z bazą danych';
  5. }
  6.  
  7. if (!mysql_select_db('xxx', $link)) {
  8. echo 'Nie można wybrać bazy danych';
  9. }
  10.  
  11. $sql = 'SELECT zetony FROM uzytkownicy WHERE id = 1';
  12. $result = mysql_query($sql, $link);
  13.  
  14. if (!$result) {
  15. echo "Błąd bazy danych, nie można wykonać zapytania do bazy\n";
  16. echo 'Błąd MySQL: ' . mysql_error();
  17. }
  18.  
  19. while ($row = mysql_fetch_assoc($result)) {
  20. echo $row['zetony'];
  21. }
  22.  
  23.  
  24. ?>


Skrypt działa, jednak wyświetla się tylko rekord "żetony" dla id = 1
Jak zrobić, by wyświetłał "zetony" w zależności jaki uzytkownik jest zalogowany?
Turson
Gdzie trzymasz informacje jaki użytkownik jest zalogowany - w sesji? To wstaw np. $_SESSION['user_id'] do zapytania i po sprawie
sciagawa
  1. $sql = 'SELECT zetony FROM uzytkownicy WHERE id = $_SESSION['user_id']';


tak?

logowanie jest zapisywane w sesji :

  1. $_SESSION['nick']
  2. $_SESSION['haslo']


Pozmieniałem troche kod i powiedz, czy czegoś brakuje :

  1. <?php
  2.  
  3. if (!$link = mysql_connect('xxxl', 'xxx', 'xxx')) {
  4. echo 'Nie można nawiązać połączenia z bazą danych';
  5. }
  6.  
  7. if (!mysql_select_db('xxx', $link)) {
  8. echo 'Nie można wybrać bazy danych';
  9. }
  10.  
  11. $sql = 'SELECT points FROM uzytkownicy WHERE id = $_SESSION['user_id']';
  12. $result = mysql_query($sql, $link);
  13.  
  14. if (!$result) {
  15. echo "Błąd bazy danych, nie można wykonać zapytania do bazy\n";
  16. echo 'Błąd MySQL: ' . mysql_error();
  17. }
  18.  
  19. while ($row = mysql_fetch_assoc($result)) {
  20. echo $row['points'];
  21. }
  22.  
  23.  
  24. ?>
Turson
Trzymasz hasło w sesji facepalmxd.gif oprócz id użytkownika nic więcej nie potrzeba

nie
  1. $sql = 'SELECT zetony FROM uzytkownicy WHERE id = $_SESSION['user_id']';

a
  1. $sql = 'SELECT zetony FROM uzytkownicy WHERE id = '.$_SESSION['user_id'];
sciagawa
Błąd bazy danych, nie można wykonać zapytania do bazy Błąd MySQL: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Non stop ten sam błąd mi wyskakuje, wiesz może o co chodzi?
Turson
Daj echo $sql to zobaczysz jak wygląda zapytanie
YourFrog
  1. mysql_query($sql) or die( mysql_error() ); //Prawidłowa forma



mysql_query od wersji bodajże 6.0 będzie wycofane z użycia.
sciagawa
Mogę użyć zamiast id to nick uzytkownika? Może po tym będzie ok.
Turson
W poście #6 napisałem co zrobić
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.