Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP+MySQL] Numer klienta/zamówienia
Red22
post
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.
Go to the top of the page
+Quote Post
anonim1133
post
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 haha.gif
wyciągnąć to Id użytkownika,
  1. <?php
  2. $query = "SELECT Id FROM users WHERE Nazwa='$user' ";
  3. $query .= "AND Haslo='$pass'";
  4. $query = mysql_query($query);
  5. print_r($query) // - wyświetli Ci tablicę z wynikiem/ami :)
  6. ?>


a id użytkownika po zalogowaniu pewnie przetrzymujesz w sesjach? smile.gif jeśli nie to możesz sobie tam je "ulokować" ?
ps. kod php podawaj w znacznikach
  1. <?php
  2. kod
  3. ?>
Go to the top of the page
+Quote Post
Red22
post
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
Go to the top of the page
+Quote Post
anonim1133
post
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ć
  1. <?php
  2. $query = mysql_fetch_array($query);
  3. ?>

Cytat
1 wiersz no to Id i i tak nie reaguje :/.


dalej nie rozumiem co mówisz tongue.gif
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ć? tongue.gif
Go to the top of the page
+Quote Post
Red22
post
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.
Go to the top of the page
+Quote Post
anonim1133
post
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 tongue.gif
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ę haha.gif
Go to the top of the page
+Quote Post
Red22
post
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).
Go to the top of the page
+Quote Post
anonim1133
post
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ś? smile.gifP
  1. <?php
  2. zamiast
  3. $query = mysql_query($query);
  4. daj
  5. $query = mysql_query($query) or die(mysql_error());
  6. ?>


to wyżej, jeżeli myślę o dobrym kawałku kodu tongue.gif to w następnym bodaj poście, poprawiłem go:P jeżeli dalej nie zadziała pokaż ewentualny kod błędu?

// ale se postów nabiłem haha.gif

Ten post edytował anonim1133 12.01.2008, 19:18:36
Go to the top of the page
+Quote Post
Red22
post
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.
Go to the top of the page
+Quote Post
jang
post
Post #10





Grupa: Zarejestrowani
Postów: 101
Pomógł: 11
Dołączył: 2.02.2005

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


  1. <?php
  2. mysql_connect('localhost','root','');
  3.  
  4. $result = mysql_query("select * from users where login = '$login' limit 1");
  5. while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
  6. {
  7. echo $row["id"].'<br />';
  8. echo $row["login"];
  9. }
  10. ?>


--------------------
$email = filter_var(filter_var($email, FILTER_SANITIZE_EMAIL), FILTER_VALIDATE_EMAIL);
if($email === false) {
// Houston, we have a problem....
}
Go to the top of the page
+Quote Post
anonim1133
post
Post #11





Grupa: Zarejestrowani
Postów: 53
Pomógł: 5
Dołączył: 22.07.2006
Skąd: Legnica

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


dałeś session_start() ?
sprawdź czy $row[0] ma jakąś wartość(najlepiej tą odpowiednią)
  1. <?php
  2. echo $row[0];
  3. ?>


ps. tyle postów nastukałem bezsensu, ale jakoś nie mogłem zrozumieć o co Ci chodzi tongue.gif
Go to the top of the page
+Quote Post
parasite
post
Post #12





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 15.03.2007

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


Jeżeli dałeś
  1. <?php
  2. ?>


to ok, jeżeli nie - to zrób tak, potem tylko
  1. <?php
  2. { 
  3. $userid = $_SESSION['id'];
  4. }
  5. ?>


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()?
Go to the top of the page
+Quote Post
Red22
post
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
Go to the top of the page
+Quote Post
jang
post
Post #14





Grupa: Zarejestrowani
Postów: 101
Pomógł: 11
Dołączył: 2.02.2005

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


Po pierwsze, w jednym miejscu dajesz :
  1. <?php
  2. $userid = $_SESSION['id'];
  3. ?>
a w drugim
  1. <?php
  2. isSet($_SESSION['Id'])
  3. ?>
a id i Id to nie to samo exclamation.gif!
Sprawdzałeś to co Ci napisałem w moim poprzednim poście ?
Oczywiście zamiast while i echo dajesz :
  1. <?php
  2. $_SESSION['id'] = $row['id'];
  3. echo $_SESSION['id'];
  4. ?>
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....
}
Go to the top of the page
+Quote Post
Red22
post
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.
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 Aktualny czas: 19.08.2025 - 08:41