Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] połączenie zapytań
fredzio90
post
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 19.02.2007

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


otóż mam skrypt logowania polskiego CMS-a, który pobiera coś z bazy/.... a zpaytanko jest takie:

  1. <?php
  2. $res = mysql_query("SELECT nick, pass, access FROM $user_tbl WHERE nick='{$_POST['a10']}' AND pass=MD5('{$_POST['b10']}')");
  3. ?>


i chciałbym dodać podczas logowania dodatkowe pole które będzie jakby dodaatkowym zabezpieczneim podczas logowania. i chciałbym do tego defaultowego zapytania dołączyć takie:

  1. SELECT nick, haslo FROM acp_pass WHERE nick='{$_POST['a10']}' AND haslo=MD5('{$_POST['acp']}')


i niestety nie udaje mi się...
prubowałem w ten sposób:

  1. <?php
  2. $res = mysql_query("SELECT nick, pass, access FROM $user_tbl WHERE nick='{$_POST['a10']}' AND pass=MD5('{$_POST['b10']}') UNION SELECT nick, haslo FROM acp_pass WHERE nick='{$_POST['a10']}' AND haslo=MD5('{$_POST['acp']}')");
  3. ?>


lecz error, w poniższych sprawdzaniach..
Go to the top of the page
+Quote Post
Lee
post
Post #2





Grupa: Zarejestrowani
Postów: 319
Pomógł: 0
Dołączył: 11.04.2006
Skąd: Chojnów

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


A jaki ci błąd wywala?
Go to the top of the page
+Quote Post
fredzio90
post
Post #3





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 19.02.2007

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


ponieważ niżej mam kod validujący:

  1. <?php
  2. if(mysql_num_rows($res)==1)
  3. {
  4. ?>


i jest to linia nr 25, a mniejwięcej całość:

  1. <?php
  2. $res = mysql_query("SELECT nick, pass, access FROM $user_tbl WHERE nick='{$_POST['a10']}' AND pass=MD5('{$_POST['b10']}')");
  3.  
  4. if(mysql_num_rows($res)==1)
  5. {
  6. ?>


i błąd:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
Go to the top of the page
+Quote Post
strife
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Zapewne masz błąd w zapytaniu, użyj pod zapytaniem konstrukcji z mysql_error" title="Zobacz w manualu PHP" target="_manual i wtedy zobacz jaki błąd Ci wywala.

  1. <?php
  2. $o = mysql_query("JAKIS SELECT") OR die(mysql_error());
  3. ?>


Pozdrawiam.
Go to the top of the page
+Quote Post
fredzio90
post
Post #5





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 19.02.2007

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


The used SELECT statements have a different number of columns
Go to the top of the page
+Quote Post
strife
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Cytat(fredzio90 @ 26.06.2007, 22:00:32 ) *
The used SELECT statements have a different number of columns


I jakie kroki podjąłeś sam, aby rozwiązać ten problem? Szukałeś na google? Zrób sobie taki kod i wyświetl jego wynik:

  1. <?php
  2. $res = "SELECT nick, pass, access FROM $user_tbl WHERE nick='{$_POST['a10']}' AND pass=MD5('{$_POST['b10']}')";
  3. echo $res;
  4. ?>


Spisz sobie to zapytanie i przeanalizuj, masz w nim błąd, możesz użyc konsoli mysql, łatwiej Ci pójdzie.

Pozdrawiam.
Go to the top of the page
+Quote Post
fredzio90
post
Post #7





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 19.02.2007

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


NIEMOŻLIWE zeby w tym kodzie:

  1. <?php
  2. $res = mysql_query("SELECT nick, pass, access FROM $user_tbl WHERE nick='{$_POST['a10']}' AND pass=MD5('{$_POST['b10']}')");
  3. ?>


był błąd, ponieważ logowanie do Panelu admina działa perfekcyjnie.... ;|
Go to the top of the page
+Quote Post
Norbas
post
Post #8





Grupa: Zarejestrowani
Postów: 100
Pomógł: 1
Dołączył: 6.02.2006

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


Przecież masz komunikat błędu:
Cytat
The used SELECT statements have a different number of columns

W pierwszym zapytaniu SELECT odczytujesz trzy pola, a w drugim masz dwa
Go to the top of the page
+Quote Post
fredzio90
post
Post #9





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 19.02.2007

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


no i jak trzeba sobie z tym poradzić ? przecież nie dodam do drugiej tabeli zapytania nowego pola.. żeby było po 3 pola odczytywane...

(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
Go to the top of the page
+Quote Post
Norbas
post
Post #10





Grupa: Zarejestrowani
Postów: 100
Pomógł: 1
Dołączył: 6.02.2006

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


Możesz albo usunąć jedno pole z pierwszego zapytania albo do drugiego dodać jakąś wartość, która będzie miała ten sam typ co odpowiednie pole z pierwszego zapytania SELECT. Nie wiem jakiego typu jest pole access, jeśli liczbowe, to drugie zapytanie może zaczynać się od
  1. ... SELECT nick, haslo, 0 ...

Jeżeli jest typu tekstowego, to:
  1. ... SELECT nick, haslo, '' ...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 19:11