Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: facebox i pętla while
Forum PHP.pl > Forum > PHP
KubasGC
Witam serdecznie!

Piszę pewien panel i mam problem, nie wiem co zrobić, jak to nawet zatytułować w googlach, więc spróbuję tutaj smile.gif.
Jak można zobaczyć w tytule - zainstalowałem facebox'a.

Teraz tak, z konta globalnego forum pobierany jest user id. Mozna stworzyc postac przypisujac ja pod konto globalne z forum. W while zrobione jest pokazywanie wszystkich postaci. Jest tam tylko nazwa postaci i link do otworzenia facebox'a. Przy tylko jednej postaci wszystko jest ok, zmienne pokazują się w porządku. Natomiast jeżeli są 2 lub więcej to we wszystkich pokazują mi się dane tylko jednej postaci.
Kawałek kodu PHP
  1. while($r = mysql_fetch_assoc($p_sprq2))
  2. {
  3. $p_id = $r['player_uid'];
  4. $p_un = $r['nick'];
  5.  
  6. if($r['sex'] == 1)
  7. {
  8. $p_plec = "Mężczyzna";
  9. }else{
  10. $p_plec = "Kobieta";
  11. }
  12. $p_skin = $r['skin'];
  13. $p_cash = $r['cash'];
  14. $p_bank = $r['bank'];
  15. $p_hp = $r['hp'];
  16. $p_age = $r['age'];
  17.  
  18. echo("Imię i nazwisko: <a href='#info' rel='facebox'><b>$p_un</b></a><br>");
  19. echo("<div id='info' style='display:none;'>
  20. <img src='skins/$p_skin.png' style='float:right;' />
  21. <h2>Podgląd użytkownika</h2><br />
  22. <table><tr><td>ID postaci:</td><td><b>$p_id</b></td></tr><tr><td>Imię i nazwisko:</td><td><b>$p_un</b></td></tr><tr><td>Wiek:</td><td><b>$p_age</b></td></tr><tr><td>Płeć:</td><td><b>$p_plec</b></td></tr><tr><td>HP:</td><td><b>$p_hp%</b></td></tr><tr><td>Portfel:</td><td><b>$p_cash$</b></td></tr><tr><td>Bank:</td><td><b>$p_bank$</b></tr></tr></table>
  23. </div>");


Bardzo proszę o pomoc i z góry dziękuję smile.gif
IProSoft
Jak wygląda zapytanie: $p_sprq2 ?
Spróbuj:
  1.  
  2. while ($r = mysql_fetch_array($p_sprq2, MYSQL_ASSOC)) {
  3. {
  4. if($r['sex'] == 1)
  5. {
  6. $p_plec = "Mężczyzna";
  7. }
  8. else
  9. {
  10. $p_plec = "Kobieta";
  11. }
  12. 'Imię i nazwisko: <a href="#info" rel="facebox"><b>'.$r['nick'].'</b></a><br>
  13. <div id="info" style="display:none;">
  14. <img src="skins/'.$r['skin'].'.png" style="float:right;" />
  15. <h2>Podgląd użytkownika</h2><br />
  16. <table>
  17. <tr><td>ID postaci:</td><td><b>'.$r['player_uid'].'</b></td></tr>
  18. <tr><td>Imię i nazwisko:</td><td><b>'.$r['nick'].'</b></td></tr>
  19. <tr><td>Wiek:</td><td><b>'.$r['age'].'</b></td></tr>
  20. <tr><td>Płeć:</td><td><b>'.$p_plec.'</b></td></tr>
  21. <tr><td>HP:</td><td><b>'.$r['hp'].'%</b></td></tr>
  22. <tr><td>Portfel:</td><td><b>'.$r['cash'].'$</b></td></tr>
  23. <tr><td>Bank:</td><td><b>'.$r['bank'].'$</b></tr></tr>
  24. </table>
  25. </div>';
  26. }
KubasGC
Niestety nic się nie zmieniło.
Zapytanie $p_sprq2:
  1. $p_spr2 = "SELECT * FROM players WHERE owner = '$userid'";
  2. $p_sprq2 = mysql_query($p_spr2);


@offtop
Cholera, kliknąłem pomógł przypadkiem ^^

Może trzeba zrobić, aby do każdej nowej postaci robiło nowy div?
IProSoft
A czy to zapytanie napewno zwraca Ci więcej niż jeden rekord?
HTML nie ma tu nic do rzeczy.
Przed if($r['sex'] == 1) daj print_r($r); i sprawdź co zwiera tablica i ile razy ją wyświetli.
KubasGC
Wyniki na pół strony, wyświetla 2 razy bo mam 2 postacie założone.
IProSoft
Wrzuć wynik tutaj.
KubasGC
IProSoft
Czyli jak najbardziej ok.
echo 'Imię i nazwisko: <a href="#info" rel="facebox"><b>'.$r['nick'].'</b></a><br> powinno dać:
Kod
Imię i nazwisko: <a href="#info" rel="facebox"><b>James_Truck</b></a><br>
Imię i nazwisko: <a href="#info" rel="facebox"><b>dupa_dupa</b></a><br>

Innej możliwości nie ma.
KubasGC
I tak dokładnie daje. Ale po kliknięciu pokazują się tylko dane z postaci o nicku James_Truck. Cały czas właśnie dążę do tego. W ramce facebox gryzą się zmienne i pokazują się tylko dane z jedne postaci
gac3k
ehhh, zrób tak

ten fragment

  1. 'Imię i nazwisko: <a href="#info" rel="facebox"><b>'.$r['nick'].'</b></a><br>
  2. <div id="info" style="display:none;">


zmień na

  1. 'Imię i nazwisko: <a href="#info'.$r['player_uid'].'" rel="facebox"><b>'.$r['nick'].'</b></a><br>
  2. <div id="info'.$r['player_uid'].'" style="display:none;">


gwarantuje że zadziała.
KubasGC
Właśnie o to mi chodziło, dziękuję ślicznie smile.gif
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.