Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak to zrobic?
Forum PHP.pl > Forum > Bazy danych > MySQL
basf
Mam dwie tabele.

Pierwsza tabela przechowuje dane userow.
Druga przechowuje srednia ocen.

Gdyby bylo w jednej tabeli to nie problem, ale nie wiem jak zrobic to z dwoma. (a musza byc dwie tabele)

Jest ranking. Chce wyswietlic 10 mezczyzn z najlepsza srednia.
Tabela users ma pole plec gdzie wartoscia jest "Mężczyzna"

  1. CREATE TABLE `users` (
  2. `login` varchar(250) DEFAULT NULL,
  3. `plec` varchar(9) DEFAULT NULL
  4. ) TYPE=MyISAM;



  1. CREATE TABLE `fotka` (
  2. `login` varchar(250) NOT NULL DEFAULT '',
  3. `srednia` varchar(10) NOT NULL DEFAULT '',
  4. PRIMARY KEY (`login`)
  5. ) TYPE=MyISAM;




Wiec chce pobrac liste mezczyzn o najwyzszej sredniej.
Nie mam zielonego pojecia jak stworzyc takie zapytanie.
Moglbym pobrac liste userow z tabeli users ktorzy sa meczyznami i potem dla tych pobranych loginow pobrac z drugiej tabeli srednia posortowac i ok, ale to musi byc optymalnie zrobione gdyz baza bedzie miala na dzien dobry 400 000 userow.

Bardzo prosze o pomoc
Basf
crash
  1. SELECT users.login, fotka.srednia
  2. FROM fotka, users WHERE users.plec = "Mężczyzna" AND users.login = fotka.login GROUP BY users.login ORDER BY fotka.srednia LIMIT 10 DESC
basf
Dzieki wielkie. W phpmyadminie to wrzucilem i dziala elegancko.
Ale problem z obsluga w php jest:

  1. <?php
  2.  if($_GET['show'] == 'm')
  3.  {
  4. $Query = mysql_query(&#092;"select users.login, fotka.srednia from fotka, users where users.plec = 'Mężczyzna' and users.login = fotka.login group by users.login order by fotka.srednia limit
  5. 10 desc\");
  6.  }
  7.  if($_GET['show'] == 'k')
  8.  {
  9. $Query = mysql_query(\"select users.login, fotka.srednia from fotka, users where users.plec = 'Kobieta' and users.login = fotka.login group by users.login order by fotka.srednia limit
  10. 10 desc\");
  11.  }
  12.  
  13.  
  14.  
  15.  for ($i=0;$i<mysql_num_rows($Query);$i++)
  16.  {
  17.  print mysql_result($Query,$i,'login');
  18.  print mysql_result($Query,$i,'srednia');
  19.  
  20.  
  21.  }
  22. ?>


Bledy:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /[...]fotka_katalog.php on line 30

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /[...]/fotka_katalog.php on line 33
crash
A tak?:
  1. <?php
  2. if($_GET['show'] == 'm')
  3. {
  4.  $plec = 'Mężczyzna';
  5. }
  6. elseif($_GET['show'] == 'k')
  7. {
  8.  $plec = 'Kobieta';
  9. }
  10.  
  11. $query = mysql_query('select users.login, fotka.srednia from fotka, users where users.plec = \"'.$plec.'\" and users.login = fotka.login group by users.login order by fotka.srednia l
  12. mit 10 desc');
  13.  
  14. while(list($login, $srednia) = mysql_fetch_row($query))
  15. {
  16.  echo $login.': '.$srednia.'<br/>';
  17. }
  18. ?>
basf
Tym razem:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /[...]/fotka_katalog.php on line 32

linia 32...

  1. <?php
  2. while(list($login, $srednia) = mysql_fetch_row($query))
  3. ?>






zaraz dostane szalu normalnie ;p
cudny
ej - przeciez to takie proste - komunikat taki ze w tablicy nic nie ma smile.gif



[php]
<?php
if($_GET['show'] == 'm')
{
$plec = 'Mężczyzna';
}
elseif($_GET['show'] == 'k')
{
$plec = 'Kobieta';
}

$query = mysql_query("select users.login as login, fotka.srednia as srednia from fotka, users where users.plec = '".$plec."' and users.login = fotka.login group by users.login order by fotka.srednia limit 10 desc") or die ('blad: '.mysql_error());

while($qq = mysql_fetch_array($query))
{
echo $qq['login'].'|'.$qq['srednia']."<BR>";
}
?>


Teraz musi dzialac snitch.gif
crash
A to spróbuj jeszcze zobaczyć co wyświetla mysql_error" title="Zobacz w manualu PHP" target="_manual() po wykonaniu tego zapytania, bo skoro w phpMyAdminie zadziałało to zapytanie to nie powinno być błędów...
Seth
Prosze zmeinic temat na jakis normalny, pasujacy do pytania.

Inaczej bede zmuszony go zamknac.
basf
Dziekuje wszystkim za pomoc, mozna usunac topic.
Seth
Temat zamykam.

@basf: Za brak reakcji na moj post dostajesz ostrzezenie.
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.