Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Najpierw sortuj, potem update
maciasgta
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 12.01.2008

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


  1.  
  2. $zapytanie = mysql_query("SELECT poziom FROM trenerzy ORDER BY id_druzyna DESC");
  3. $rek = mysql_fetch_array($zapytanie);
  4.  
  5. $losowanie = $rek['poziom'];
  6. if($losowanie == 1)
  7. {
  8. mysql_query ("UPDATE juniorzy SET poziom=poziom+1 WHERE poziom<=3 AND ORDER BY id_druzyna DESC");
  9. }else{
  10. mysql_query ("UPDATE juniorzy SET poziom=poziom+0 WHERE poziom<=3 ORDER BY id_druzyna DESC");
  11. }
  12.  


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]
Go to the top of the page
+Quote Post
Suh
post
Post #2





Grupa: Zarejestrowani
Postów: 112
Pomógł: 27
Dołączył: 24.08.2007
Skąd: Tarnów

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


Brakuje Ci pętli. W twoim skrypcie odnosisz się tylko do pierwszego zwróconego rekordu.
Proponuje tak :
  1. while($rek = mysql_fetch_assoc($zapytanie))
  2. {
  3. //$losowanie... i reszte kodu wklej tu do petli
  4. }
Go to the top of the page
+Quote Post
maciasgta
post
Post #3





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 12.01.2008

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


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
Go to the top of the page
+Quote Post
jmail
post
Post #4





Grupa: Zarejestrowani
Postów: 352
Pomógł: 53
Dołączył: 10.08.2009

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


Tak zdaje się będzie szybciej bez zbędnej pętli (IMG:style_emoticons/default/winksmiley.jpg)

  1. $zapytanie = mysql_query("
  2. update
  3. trenrzey t, juniorzy j
  4. set
  5. j.poziom = j.poziom + 1
  6. where
  7. j.id_druzyna = t.id_truzyna
  8. and
  9. t.poziom = 1;
  10. ");
  11.  
Go to the top of the page
+Quote Post
maciasgta
post
Post #5





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 12.01.2008

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


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
Go to the top of the page
+Quote Post
jmail
post
Post #6





Grupa: Zarejestrowani
Postów: 352
Pomógł: 53
Dołączył: 10.08.2009

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


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ć.

Ten post edytował jmail 14.08.2009, 13:22:54
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: 25.09.2025 - 19:44