Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie MYSQL
Forum PHP.pl > Forum > Bazy danych > MySQL
Earth
  1. <?php
  2. $result = mysql_query("SELECT * FROM `fusion_nfsu2_ranking` 
  3. ORDER BY `fusion_nfsu2_ranking`.`result` ");
  4.  
  5. while ($data = mysql_fetch_array($result)) {
  6. $query = mysql_query("SELECT `user_name` , `user_aim` , `user_yahoo` 
  7.  FROM `fusion_users` WHERE user_id = '".$data['user_id']."'");
  8. if ($data_user = mysql_fetch_array($query)) {
  9. echo "<TR><TD>".$data_user['user_name']."</TD><TD>".
  10.  $data_user['user_aim']."</TD><TD>".
  11.  $data_user['user_yahoo']."</TD><TD>".$data['last']."</TD><TD>".
  12.  $data['result']."</TD></TR>";
  13.  }
  14. }
  15. ?>


Czy nie da się tego skrócić do jednego zapytania? Według mnie powyższe rozwiązanie zabiera zbyt dużo czasu.
defrag
Moze podzapytanie?smile.gif
  1. SELECT `user_name` , `user_aim` , `user_yahoo`
  2. FROM `fusion_users` WHERE user_id IN (SELECT user_id FROM `fusion_nfsu2_ranking` ORDER BY `fusion_nfsu2_ranking`.`result`)
kwiateusz
  1. SELECT u.user_name , u.user_aim , u.user_yahoo FROM fusion_users u
  2. LEFT JOIN fusion_nfsu2_ranking r ON r.user_id=u.user_id


powinno zadziałać
Earth
Cytat(defrag @ 25.06.2007, 23:29:25 ) *
Moze podzapytanie?smile.gif
  1. SELECT `user_name` , `user_aim` , `user_yahoo`
  2. FROM `fusion_users` WHERE user_id IN (SELECT user_id FROM `fusion_nfsu2_ranking` ORDER BY `fusion_nfsu2_ranking`.`result`)


Wtedy nie będzie result i last. dry.gif

Cytat(kwiateusz @ 25.06.2007, 23:32:09 ) *
  1. SELECT u.user_name , u.user_aim , u.user_yahoo FROM fusion_users u
  2. LEFT JOIN fusion_nfsu2_ranking r ON r.user_id=u.user_id


powinno zadziałać


blinksmiley.gif Można jakieś wyjaśnienia.
kwiateusz
http://www.w3schools.com/sql/sql_join.asp

jak potrzebujesz result i last podejrzewam ze z fusion_nfsu2_ranking to powino to być:

  1. SELECT u.user_name , u.user_aim , u.user_yahoo, r.result, r.last FROM fusion_users u
  2. LEFT JOIN fusion_nfsu2_ranking r ON r.user_id=u.user_id


pisane z palca smile.gif
SongoQ
@Earth Podstawy relacyjnych baz danych sie klaniaja. Manual, manual i jeszcze raz manual.
Earth
Cytat(SongoQ @ 26.06.2007, 00:22:04 ) *
@Earth Podstawy relacyjnych baz danych sie klaniaja. Manual, manual i jeszcze raz manual.

Zgadza się biggrin.gif
Trzeba się dokształcić. Wybrałem kilka książek, w kolejności które mi się najbardziej spodobały. Nie chciałem już zaśmiecać forum, więc zapytam się tu którą mi byście polecali.
http://helion.pl/ksiazki/msqalm.htm
http://helion.pl/ksiazki/msqlpo.htm
http://helion.pl/ksiazki/msqss2.htm
kwiateusz
Jest oddzielny temat na Hydeparku ad książek smile.gif

ale poza konkursem nad 2gą sam sie zastanawiam tongue.gif
SongoQ
@Earth Jak na podstawy to polecam pierwsza pozycje. Chodz 2 tez jest calkiem calkiem sobie.
Earth
Cytat(kwiateusz @ 25.06.2007, 23:21:15 ) *
http://www.w3schools.com/sql/sql_join.asp

jak potrzebujesz result i last podejrzewam ze z fusion_nfsu2_ranking to powino to być:

  1. SELECT u.user_name , u.user_aim , u.user_yahoo, r.result, r.last FROM fusion_users u
  2. LEFT JOIN fusion_nfsu2_ranking r ON r.user_id=u.user_id


pisane z palca smile.gif


Zamieniłem LEFT na RIGHT i działa OK
SELECT u.user_name , u.user_aim , u.user_yahoo, r.result, r.last FROM fusion_users u
RIGHT JOIN fusion_nfsu2_ranking r ON r.user_id=u.user_id

Ale książki nie mam, bo w Wawie cienko z "almanachem MySQL" sad.gif
Powiedzieli, że w Katowicach mogę znalaźć, a Warszawie ostatnią mieli w Czerwcu. Postram się w Helionie zamówić. Tylko teraz znowu za JavaScript się zabrałem i czasu braknie.
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.