Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] połączenie zapytań
Forum PHP.pl > Forum > Przedszkole
fredzio90
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..
Lee
A jaki ci błąd wywala?
fredzio90
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
strife
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.
fredzio90
The used SELECT statements have a different number of columns
strife
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.
fredzio90
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.... ;|
Norbas
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
fredzio90
no i jak trzeba sobie z tym poradzić ? przecież nie dodam do drugiej tabeli zapytania nowego pola.. żeby było po 3 pola odczytywane...

questionmark.gif?
Norbas
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, '' ...
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.