Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak to zrobic?
basf
post 1.04.2005, 19:24:45
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 11.06.2003

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
crash
post 1.04.2005, 19:31:00
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


  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


--------------------
Go to the top of the page
+Quote Post
basf
post 1.04.2005, 20:16:46
Post #3





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 11.06.2003

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


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
Go to the top of the page
+Quote Post
crash
post 1.04.2005, 20:31:10
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


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


--------------------
Go to the top of the page
+Quote Post
basf
post 1.04.2005, 20:37:06
Post #5





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 11.06.2003

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


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
Go to the top of the page
+Quote Post
cudny
post 1.04.2005, 21:05:19
Post #6





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


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


--------------------
..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
Go to the top of the page
+Quote Post
crash
post 1.04.2005, 21:10:30
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


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


--------------------
Go to the top of the page
+Quote Post
Seth
post 1.04.2005, 21:16:51
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Prosze zmeinic temat na jakis normalny, pasujacy do pytania.

Inaczej bede zmuszony go zamknac.
Go to the top of the page
+Quote Post
basf
post 1.04.2005, 21:41:13
Post #9





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 11.06.2003

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


Dziekuje wszystkim za pomoc, mozna usunac topic.
Go to the top of the page
+Quote Post
Seth
post 1.04.2005, 23:01:27
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Temat zamykam.

@basf: Za brak reakcji na moj post dostajesz ostrzezenie.
Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 09:15