![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 12.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Mam pewien problem: piszę na zaliczenie przedmiotu stronę w PHP korzystającą z baz danych. Strona jest dosyć prosta i jedyny problem jaki mam jest następujący - klient loguje się, wchodzi i chce kupić coś. Tranzakcja jest zapisywana w tabeli. Tabele ułożyłem następująco:
Users (id, nazwa, haslo) Ksiazki (id,autor,tytul) Zamowienia(id,idksiazki,iduser) I problem jest następujący: nie wiem jak z zapytania np. $query = "SELECT Id FROM users WHERE Nazwa='$user' "; $query .= "AND Haslo='$pass'"; wyciągnąć to Id użytkownika, by później móc wpisać je do tabeli ZAMOWIENIA. Id książki już zrobiłem i działa. Ale by wszystko działało i pokazywało jaki klient co zamówił, potrzebny mi sposób zapisywania ID zalogowanej osoby do innej tabeli w bazie... I na tym utknąłem. Wszelkie pomysły (nawet innego rozwiązania tego ) mile widziane. Pozdrawiam. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 5 Dołączył: 22.07.2006 Skąd: Legnica Ostrzeżenie: (0%) ![]() ![]() |
powiem szczerze... nierozumiem o co chodzi, ale spróbuję Ci pomóc
![]() wyciągnąć to Id użytkownika,
a id użytkownika po zalogowaniu pewnie przetrzymujesz w sesjach? ![]() ps. kod php podawaj w znacznikach
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 12.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Kod $userid = $row[0]; $_SESSION['Id'] = $userid; Takie coś mam do sesji. 1 wiersz no to Id i i tak nie reaguje :/. Ale to też nie tak: JAK z sesji zalogowanego użytkownika wyciągnąć jego ID ( odpowiadające jego ID w tabeli Users ) bym mógł potem tego ID użyć w zamówieniach? Ten post edytował Red22 12.01.2008, 18:48:53 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 5 Dołączył: 22.07.2006 Skąd: Legnica Ostrzeżenie: (0%) ![]() ![]() |
znalazłem błąd w swoim poście ;P powinno być
Cytat 1 wiersz no to Id i i tak nie reaguje :/. dalej nie rozumiem co mówisz ![]() chodzi Ci może o to że nic sie nie zapisuje w sesji ? tak ? jeżeli tak to po 'poprawce' powinno być ok, jeżeli nie to może spróbuj to może jakoś inaczej opisać? ![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 12.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
By wyświelić kto co zamówił potrzebne są 2 rzeczy: ID KLIENTA i ID KSIĄŻKI. ID KSIĄŻKI mam już zrobione. Nie wiem skąd pobierać do jakiejś zmiennej (i jak ) ID KLIENTA.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 5 Dołączył: 22.07.2006 Skąd: Legnica Ostrzeżenie: (0%) ![]() ![]() |
może spróbujmy inaczej
![]() w tej chwili w tym swoim skrypcie chcesz zalogowanemu userowi pokazać co zamówił? czy w panelu admina wyświetlić co i kto zamówił ? jeżeli to 1 to: -pobierasz jego id z sesji do zmiennej $id_usera -zapytanie mysql SELECT * FROM `zamowienia` WHERE `ID_KLIENTA` = '$id_usera'; - i wyświetlasz? jeżeli dalej nie trafiłem to się poddaję ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 12.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie jak pobrać to ID do zmiannej ? Bo to powyżej nie działa (zmienna jest pusta).
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 5 Dołączył: 22.07.2006 Skąd: Legnica Ostrzeżenie: (0%) ![]() ![]() |
może jakiś błąd w składni czy coś?
![]()
to wyżej, jeżeli myślę o dobrym kawałku kodu ![]() // ale se postów nabiłem ![]() Ten post edytował anonim1133 12.01.2008, 19:18:36 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 12.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat -pobierasz jego id z sesji do zmiennej $id_usera to jak zrobić Błędu nie ma - po prostu tą metodą co napisałem to zmienna userid jest pusta. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 11 Dołączył: 2.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- $email = filter_var(filter_var($email, FILTER_SANITIZE_EMAIL), FILTER_VALIDATE_EMAIL);
if($email === false) { // Houston, we have a problem.... } |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 5 Dołączył: 22.07.2006 Skąd: Legnica Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 15.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli dałeś
to ok, jeżeli nie - to zrób tak, potem tylko
Chyba, że coś źle zrozumiałem. Wypisz najpierw $row (patrz post wyżej). Jeżeli nie da Ci to żadnej wartości, to może zapomniałeś o session_start()? |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 12.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
W pliku do logowania nie było session start. Dałem i coś ruszyło ale dalej nie przekazuje mi do funkcji tego :/. Oto funkcja:
Kod function zamowienie($id) { if (!$db_lnk = mysql_connect("localhost", "st073", "Qg3t5f9N")){ //echo('Bł±d z poł±czeniem'); return SERVER_ERROR; } if(!mysql_select_db('st073')){ //echo('Bł±d bazy danych'); @mysql_close(); return SERVER_ERROR; } if(!session_is_registered("id")) { $userid = $_SESSION['id']; } $query = "INSERT INTO zamowienia (ksiazkaid,userid)VALUES('$id','$userid')"; if(!$result = mysql_query($query)){ //echo("Odrzucone zapytanie: $query"); return false; } } z tym, że $id jest przekazywane z innej funkcji (w tym pliku) i jest to ID książki - to działa poprawnie. W pliku głównym wywołanie to Kod if($_GET['action'] == 'zamowienie'){ if(isSet($_GET['id']) && isSet($_SESSION['Id'])){ include "funkcje.php"; zamowienie($_GET['id'] && isSet($_SESSION['Id'])); } I tu w ogóle nawet nie dodaje nic do bazy. Bez SESSION dodaje ale bez userid :/. Tzn inaczej: on DODAJE ale wartość 0. Czyli tak jakby źle czytał ID użytkownika z tabeli. Ale logowanie jest w porządku. On wciąż nie przekazuje numer ID z bazy logującego się użytkownika do zmiennej. Dlatego ta zmienna jest ciągle pusta. Ten post edytował Red22 13.01.2008, 16:01:53 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 101 Pomógł: 11 Dołączył: 2.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze, w jednym miejscu dajesz :
a w drugim a id i Id to nie to samo ![]() Sprawdzałeś to co Ci napisałem w moim poprzednim poście ? Oczywiście zamiast while i echo dajesz : echo oczywiście tylko dla sprawdzenia. -------------------- $email = filter_var(filter_var($email, FILTER_SANITIZE_EMAIL), FILTER_VALIDATE_EMAIL);
if($email === false) { // Houston, we have a problem.... } |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 12.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tak wiem - ale u mnie małe id odpowiada za IDKSIĄŻKI natomiast duże Id odpowiada za IDUSER.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 08:41 |