maciasgta
14.08.2009, 12:16:00
$zapytanie = mysql_query("SELECT poziom FROM trenerzy ORDER BY id_druzyna DESC");
$losowanie = $rek['poziom'];
if($losowanie == 1)
{
mysql_query ("UPDATE juniorzy SET poziom=poziom+1 WHERE poziom<=3 AND ORDER BY id_druzyna DESC"); }else{
mysql_query ("UPDATE juniorzy SET poziom=poziom+0 WHERE poziom<=3 ORDER BY id_druzyna DESC"); }
Witam, sprawa wygląda następująco w tabeli trenerzy mam wielu trenerów, teraz muszę ich posortować według id_druzyna, następnie skrypt ma zrobić UPDATE w tabeli juniorzy ale tylko dla tych drużyn w których poziom trenera == 1.
Co robię źle?
[php][/php]
Brakuje Ci pętli. W twoim skrypcie odnosisz się tylko do pierwszego zwróconego rekordu.
Proponuje tak :
{
//$losowanie... i reszte kodu wklej tu do petli
}
maciasgta
14.08.2009, 13:08:37
Hm... Niestety ciągle jest tak samo, tzn. robi UPDATE wszystkich rekordów w bazie juniorzy.
To ja jeszcze raz wytłumacze, skrypt najpierw ma przesortować tabele trenerzy, według id_druzyny np. malejąco. I teraz wyciąga z tabeli trenerzy pole poziom. Nastepnie przechodzimy do tabeli juniorzy, tą również ma przesrtować według id_druzyny malejąco i teraz : jeżeli poziom trenera == 1 to w tabeli juniorzy dla id_druzyny np.1 ma dodać temu juniorowi 1 punkt.
Teraz jest tak, że dodaje wszystkim juniorą +1, wszystkim id_druzyny zamiast tylko tym których id_druzyny = np.1
jmail
14.08.2009, 13:14:57
Tak zdaje się będzie szybciej bez zbędnej pętli

update
trenrzey t, juniorzy j
set
j.poziom = j.poziom + 1
where
j.id_druzyna = t.id_truzyna
and
t.poziom = 1;
");
maciasgta
14.08.2009, 13:21:13
To zapytanie co przesłałeś również nie działa.
Panowie, pomóżcie mi tylko, aby przed UPDATE tabela juniorzy się przesortowała według id_druzyny malejąco i będę wam bardzo wdzięczny.
Pozdrawiam
jmail
14.08.2009, 13:22:37
a zauważyłeś ze mi się literówka wkradła a nawet dwie? jak nie to ją znajdź i popraw. zapytanie MUSI działać.