Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> numerowanie wierszy mysql
Duo
post 27.01.2011, 18:13:56
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 16.11.2010

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


Witam !
Tak więc zacząłem swoją zabawę z mysql, przerabiam skrypty php, żeby pouczyć się trochę o php. Tak, więc numeruje mi wiersze, tylko że nie wczytuje danych z bazy mysql po wywaleniu

  1. $ilosc = mysql_num_rows($ret);
  2. for ($i=0; $i<$ilosc; $i++)


Wczytytuje dane

To co naskrobałem
  1. <?
  2. $ret = mysql_query("SELECT * FROM ranking, ranking2 WHERE ranking.playerid=ranking2.playerid ORDER BY kills DESC LIMIT $Querys, $QuerysForPage;");
  3. $int = 1;
  4. while ($zapytanie = mysql_fetch_row($ret))
  5. $ilosc = mysql_num_rows($ret);
  6. for ($i=0; $i<$ilosc; $i++)
  7.  
  8. {
  9. $playerid = $zapytanie[0];
  10. $knife = $zapytanie[7];
  11. $pistol = $zapytanie[8];
  12. $sniper = $zapytanie[9];
  13. $support = $zapytanie[10];
  14. $kills = $zapytanie[11];
  15. $shotgun = $zapytanie[18];
  16. $smg = $zapytanie[19];
  17. $refile = $zapytanie[20];
  18. $grenade = $zapytanie[21];
  19.  
  20.  
  21.  
  22. $nr= $i+1;
  23.  
  24. echo "<table width=\"100%\"class=\"forumline\" border=\"0\" cellspacing=\"1\">";
  25. echo "<tr>";
  26. echo "<td class=\"trow2\" align=\"center\" width=\"20px\">$nr</td>";
  27. echo "<td class=\"trow2\" align=\"left\" width=\"250px\"> $playerid</td>";
  28. echo "<td class=\"trow2\" align=\"left\" width=\"250px\"> $kills</td>";
  29.  
  30. echo "</tr>";
  31. echo "</table>";
  32.  


Mógłby mi ktoś pomóc, prosiłbym bardzo

Ten post edytował Duo 27.01.2011, 19:18:10
Go to the top of the page
+Quote Post
kulczycki
post 27.01.2011, 18:16:56
Post #2





Grupa: Zarejestrowani
Postów: 76
Pomógł: 8
Dołączył: 10.11.2010
Skąd: Polska,Katowice

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


$ilosc = mysql_num_rows($ret);
for ($i=0; $i<$ilosc; $i++)

{

po co to ?

wystarczy
while ($zapytanie = mysql_fetch_row($ret))
$ile++;

Ten post edytował kulczycki 27.01.2011, 18:17:52
Go to the top of the page
+Quote Post
Duo
post 27.01.2011, 18:47:54
Post #3





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 16.11.2010

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


@up

niestety nie działa pojawia się jeden wiersz, w którym jest tylko numerowanie nie pobrało danych z mysql
Go to the top of the page
+Quote Post
kulczycki
post 27.01.2011, 19:03:42
Post #4





Grupa: Zarejestrowani
Postów: 76
Pomógł: 8
Dołączył: 10.11.2010
Skąd: Polska,Katowice

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


Może podaj strukturę tabeli i powiedz co chcesz osiągnąć
Go to the top of the page
+Quote Post
Duo
post 27.01.2011, 19:23:36
Post #5





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 16.11.2010

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


To tak to są dwie tabele


Chcę z nich wyciągnąć dane takie jak
nick osoby $playerid
zabicia $kills

Chciałem, żeby były ułożone od największej ilości zabić do najmniejszej. Dodatkowo dodać na początku numerację czyli

nr playerid kills
1 Duo 59
2 LoL 50

i tak dalej i tak dalej

Mam nadzieję, że dobrze wyjaśniłem sprawę
Go to the top of the page
+Quote Post
kulczycki
post 27.01.2011, 19:40:56
Post #6





Grupa: Zarejestrowani
Postów: 76
Pomógł: 8
Dołączył: 10.11.2010
Skąd: Polska,Katowice

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


playeid - bledny typ. Powinien być INT UNSIGNED. Varchar jest traktowany jako tekst po drugie nie rozumie czemu rodzieliłeś to na tabele.

  1. SELECT tb1.*, tb2.* FROM TABLE AS tb1 LEFT JOIN table2 tb2 ON(tb1.playeid == tb2.playerid) ORDER BY tb1.kills DESC LIMIT od, do;


pozniej
  1. while($array = mysql_fetch_row($query))
  2. $i++;
Go to the top of the page
+Quote Post
Duo
post 27.01.2011, 20:04:23
Post #7





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 16.11.2010

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


  1. $ret = mysql_query("SELECT ranking.*, ranking2.* FROM table as ranking LEFT JOIN ranking2 ranking2 ON(ranking.playerid == ranking.playerid) ORDER BY ranking.kills DESC LIMIT 1, 100;");
  2.  
  3. while($array = mysql_fetch_row($query))
  4.  
  5. $i++;



czyli coś takiego będzie ?
jeżeli tak to wywala błąd

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource
błąd w linii
  1. while($array = mysql_fetch_row($query))




Go to the top of the page
+Quote Post
kulczycki
post 27.01.2011, 21:07:51
Post #8





Grupa: Zarejestrowani
Postów: 76
Pomógł: 8
Dołączył: 10.11.2010
Skąd: Polska,Katowice

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


ranking2 as ranking2 ON(ranking.playerid == ranking.playerid) questionmark.gif?

mysql_fetch_row($query)) - gdzie masz zmienną query ?

Ten post edytował kulczycki 27.01.2011, 21:08:19
Go to the top of the page
+Quote Post
Duo
post 27.01.2011, 21:26:19
Post #9





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 16.11.2010

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


zmieniłem na
ranking2.playeid == raking2.playerid

zmieniłem na
mysql_fetch_row($ret))



nadal ten sam błąd ?
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in
w tej linii
while($array = mysql_fetch_row($ret))
Go to the top of the page
+Quote Post
kulczycki
post 27.01.2011, 21:46:24
Post #10





Grupa: Zarejestrowani
Postów: 76
Pomógł: 8
Dołączył: 10.11.2010
Skąd: Polska,Katowice

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


ranking2 as ranking 2 - po drugie lepiej jak byś dał ranking2 as rank2 to samo ranking as rank.

I: ranking2.playeid == raking2.playerid
nie rozumiesz, nie potrafisz przepisać najprostszej rzeczy.
Go to the top of the page
+Quote Post
Duo
post 27.01.2011, 22:06:32
Post #11





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 16.11.2010

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


Cytat(kulczycki @ 27.01.2011, 21:46:24 ) *
ranking2 as ranking 2 - po drugie lepiej jak byś dał ranking2 as rank2 to samo ranking as rank.

I: ranking2.playeid == raking2.playerid
nie rozumiesz, nie potrafisz przepisać najprostszej rzeczy.



oops niechcący źle przepisałem

z tym as nie bardzo wiem jak to napisać może mógłbyś dać więcej gotowego kodu
w tym $ret co mam zmienić ? czemu lepiej wpisać te ranking2 as rank2 jak żadnego rank nie ma
Go to the top of the page
+Quote Post
kulczycki
post 27.01.2011, 22:14:00
Post #12





Grupa: Zarejestrowani
Postów: 76
Pomógł: 8
Dołączył: 10.11.2010
Skąd: Polska,Katowice

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


AS - jako. Czyli tymczasowo nazywasz tabele rank - prościej już wytłumaczyć nie mogę.

LEFT JOIN - dołącz, ranking2 as rank tabele ranking2 jako rank2, ON - tutaj pomyśl sobie że on = where bo też inaczej nie potrafię.

CZYLI:

LEFT JOIN ranking2 as rank2 ON(rank1.playerid = rank2.playerid).

Cyli dołącz kolumny z tabeli ranking2 jeśli playerid z tabeli ranking1 jest równy playerid z tabeli ranking2.

Inaczej:
Leci sobie petla w ranking1 i dolacza do każdego rekordu odpowiedni rekord z ranking2 jeśli jest to możliwe.

Już prościej nie potrafię, i napewno źle Ci to wytłumaczyłem ale mam nadzieję że trafi teraz to.
Go to the top of the page
+Quote Post
Duo
post 28.01.2011, 01:20:34
Post #13





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 16.11.2010

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


poddaje się, chyba za wcześnie na takie rzeczy worriedsmiley.gif
zostawiam samo wczytywanie bazy danych przynajmniej to dla mnie działa
dzięki za pomoc
Go to the top of the page
+Quote Post

Reply to this 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: 29.03.2024 - 05:44