zapytanie na 3 tabelach

0

Witam, mam kolejny problem

zapytanie na dwoch tabelach to np:

"SELECT a_p.id_p, a_p.id_a, a.id_a, a.nazwa_a FROM a_p a_p LEFT JOIN atrybut a ON a.id_a=a_p.id_a WHERE a_p.id_p='".$_GET['id_p']."'"

a jak bedzie wygladalo i czy sie tak da zapytanie na trzech tabelach??

wybierz id_a z a_p, id_a z w_a_p, id_a z atrybut, nazwa_a z atrybut gdzie id_a z tych trzech tabel bedzie sie sobie rownac

0
  1. Masz SQL-Injection w tym kodzie. Nic tylko zrobić włam.
SELECT a_p.id_p, a_p.id_a, a.id_a, a.nazwa_a FROM a_p a_p LEFT JOIN atrybut a ON a.id_a=a_p.id_a LEFT JOIN jeszcze_jedna_tabela c ON warunek ....
0

ok, dziekuje, a z tym wlamem to troche mnie przestraszyles, na czym ten wlam mialby polegac i jak tego uniknac?

0

wpisz w google sql injection i poczytaj :)

0

czy moznna uniknac powtarzania zapytania.
tzn:

$zapytanie(select...cos tam)

$row = mysql_fetch_array($zapytanie)

echo ....$row

while($row = mysql_fetch_array($zapytanie))

 echo ...$row

efekt jest taki ze w petli while zaczyna mi wyswietlac od 2 rekordu bo pierwwszy znalazl juz w echo przed wchile.

Czyli tak jakby z zapytania juz jedna dana zostala zabrana i zostala reszta. Przez to przed petla while musze znowu zadac to samo zapytanie zeby w wyniku byly wszystkie dane od 1 elementu.

PYTANIE_>>> Czy da sie jakos zresetowac to zapytanie zebym nie musiala go kopiowac??

0

A nie mozesz go wypisac jeszcze raz czy cos? Przeciez masz ta dana w $row przed petla while...

Ale jak juz tak chcesz, to mozna - http://pl.php.net/manual/pl/function.mysql-data-seek.php

0

No wlasnie w $row jest juz o 1 element mniej. Wtedy musze albo zrobic nowa zmienna $row1 podajac ze $row1 = mysql_fetch_array($zapytanie) albo jesli chce uzywac tej samej zmiennej to na nowo zadac to samo zapytanie i mysql_fetch_array od tego zapytania. A mam duzo takich sytuacji i wtedy robie tak:

$zapytanie(select...cos tam)

$row = mysql_fetch_array($zapytanie)
$row1 = mysql_fetch_array($zapytanie)
echo ....$row1 $row

while($row = mysql_fetch_array($zapytanie))

 echo ...$row

od jednego zapytania musza byc dwie rozne zmienne albo i wiecej i to mnie denerwuje bo czasem to sie pogubic mozna jak tego jest wiecej. Dlatego myslalm ze jest cos na zasadzie resetowania zeby znowu tej samej zmiennej uzywac i nie zastanawiac sie, ktora jest pelna (jeszcze nie uzyta) abym mogla ja wykorzystac. Ale to co mi podales chyba zalatwia sprawe.

tylko co oznacza ten wykrzyknik przed??

if (!mysql_data_seek($result, $i))

0

! - zaprzeczenie
mysql_data_seek zwraca true w przypadku sukcesu, false w przypadku porazki, czyli !mysql_data_seek bedzie true, jesli sie nie powiedzie.

0

aha a to w takium razie akurat mnie by sie to przydalo teraz bo mam zrobione dwa linki ktore maja odnosic mnie do tej samej strony tylko z parametrem "detal" lub "hurt" i jesli zostanie wybrany ktorys z nich to chce aby te linki zniknely ze strony. Dlatego chialabym zastosowac cos takiego:


if(!isset($_GET['detal']) or !isset($_GET['hurt']) ){
         echo '

  <a href=index.php?detal>detal</a><br />
  <a href=index.php?hurt>hurt</a>';
  }

czyli jezeli nie prawda ze detal lub hurt, takl?

no a jak klikam na nie to laduje mnie do kodu nizej gdzie mam

if(isset($_GET['detal']))
{.....

itd

ale te linki nadal sa widoczne na stronie. a skoro w pasku jest ...index.php?detal to w takim razie PRAWDA wiec nie powinno sie wyswietylac to co jest w tym if'ie z !, tak?? czy ja to zle rozumuje??

1 użytkowników online, w tym zalogowanych: 0, gości: 1