Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z polaczeniem 2 tabeli
Forum PHP.pl > Forum > Bazy danych > MySQL
kociupk
mam o to take zapytanie do logowanie ktora laczy 2 tabele tylko nie dziala jak polaczyc 2 tabele ?

  1. $zapytanie = mysql_query("SELECT * FROM (SELECT id_ucznia FROM uczniowie) UNION
  2. (SELECT id_user FROM administrator) WHERE pesel = '".$_POST['pesel']."' AND password = '".$password."'") OR die(mysql_error);
JaRoPHP
Przedstaw strukturę "zainteresowanych" tabel i napisz, co zapytanie ma z nich pobrać ...

[EDIT]
Mam wrażenie, że zaprezentowane zapytanie jest zbyt skomplikowane...
kociupk
tabela uczniowie
id_ucznia | pesel | password|
-----------|--------|------------|

tabela administracja
id_user | pesel | password|
---------|--------|------------|

i chce porownac pesel i haslo wpisane w formularzu z tymi co sa w bazie danych jest to zapytanie ze scriptu logowania
JaRoPHP
Cytat
i chce porownac pesel i haslo wpisane w formularzu z tymi co sa w bazie danych
Dobrze, ale po co chcesz łączyć tabele?
Użytkownik podaje swój pesel, hasło i skrypt ma wybrać, czy jest uczniem, czy administratorem?
Czy może użytkownik loguje się jako uczeń, albo administarator?
I czy uczeń może być jednocześnie administaratorem?
Norbas
  1. SELECT id_ucznia AS id_ FROM uczniowie AS u WHERE u.pesel=... AND u.password=...
  2. UNION
  3. SELECT id_user FROM administracja AS a WHERE a.pesel=... AND a.password=...
kociupk
wyskakuje blad Unknown column 'id_user' in 'where clause'

to zapytanie ma tylko za zadanie sprawdzic poprawnosc wpisanych danych inne zapytanie za pomoca wyciagnietch danych z tego zapytania (id_user , id_ucznia) sprawdza jakie uzytkownik ma uprawnienia i przenosi go do odpowiedniej strony
Norbas
Na pewno w zapytaniu, które napisałem? Napisz jakie zbudowałeś zapytanie.
kociupk
  1. $zapytanie = mysql_query("SELECT id_ucznia AS id_ FROM uczniowie AS u
  2. WHERE u.pesel= '".$_POST['pesel']."' AND u.password= '".$password."'
  3. UNION
  4. SELECT id_user FROM administracja AS a
  5. WHERE a.pesel= '".$_POST['pesel']."' AND a.password= '".$password."'") OR die(mysql_error());
Norbas
Jak nazywa się w Twoja tabela, gdzie przechowujesz dane użytkowników - 'administrator' czy 'administracja'?
kociupk
dane uczniow w tabeli uczniowie
dane nauczycieli sekretarki i admina w tabeli administracja
Norbas
W pierwszym zapytaniu, które podałeś miałeś tabelę 'administrator'. Jeżeli tabela naprawdę nazywa się 'administracja' i ma pole 'id_user', to nie wiem dlaczego jest błąd. Możesz spróbować wstawić drugi SELECT w nawiasy. Używaj również funkcji mysql_real_escape_string dla danych z formularza.
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.