Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: numerowanie wierszy mysql
Forum PHP.pl > Forum > PHP
Duo
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
kulczycki
$ilosc = mysql_num_rows($ret);
for ($i=0; $i<$ilosc; $i++)

{

po co to ?

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

niestety nie działa pojawia się jeden wiersz, w którym jest tylko numerowanie nie pobrało danych z mysql
kulczycki
Może podaj strukturę tabeli i powiedz co chcesz osiągnąć
Duo
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ę
kulczycki
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++;
Duo
  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))




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

mysql_fetch_row($query)) - gdzie masz zmienną query ?
Duo
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))
kulczycki
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.
Duo
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
kulczycki
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.
Duo
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
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.