Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak to wyświetlić?
Forum PHP.pl > Forum > PHP
R_D_U
Hej, zrobiłem już kilka ważnych żeczy w skrypcie, lecz to mnie dobiło może wydać wam to się proste ale dla mnie to nie jest otóż, po wpisaniy w forumlarzu nick gracza wyświetla mi jego dane lecz jeśli w tabeli typ jest jeden niech wypisze VIP a jeśli 2 to niech wypisze Gold Vip a jeśli nie ma nic to niech wypisze Zwykły gracz.
Oto zapytanie

  1. $wynik2 = mysql_query("SELECT * FROM vipy WHERE nick='$gracz' ORDER BY Typ");


$gracz to nick pobierany z GET'a w formularzu.
I dalej pojawia się problem:

  1. if(mysql_num_rows($wynik2)>0)
  2. {
  3. while ($txt = mysql_fetch_assoc($wynik2))
  4. {
  5. echo '<table>';
  6. echo '<tr>';
  7. echo '<td width="150" class="box">';
  8. echo '<font class="typstat1"><center>Gold Vip</center></font>';
  9. echo '</td>';
  10. echo '</tr>';
  11. echo '</table>';
  12.  
  13. }
  14. }


Jeśli wpisze tak to wyświetla Gold vip.
Proszę o podsunięcie pomysły w jaki sposub sprawdzać czy jest wpisane 1 2 albo nic.
!*!
switch
R_D_U
W którym miejscu tego skryptu to użyćquestionmark.gif

Edit chyba coś takiego??

  1. switch ($wynik2['Typ']) // tylko co tu??
  2. {
  3. case 1:
  4. echo "VIP";
  5. break;
  6.  
  7. case 2:
  8. echo "Gold vip";
  9. break;
  10.  
  11. default:
  12. echo "gracz";
  13. break;
  14.  
  15. }

Zapewne coś w switch źle. Tylko co??
_Borys_
Sprawdź przez echo $wynik2['Typ']; albo print_r($wynik2); co wyświetla, jak nic nie wyświetla a powinno to coś z zapytaniem do bazy nie tak.
R_D_U
Nic nie wyświetla zobacz screena z bazy:

http://imageshack.us/photo/my-images/803/81784867.jpg/
nazwa tabeli vipy nie wiem w czym problem ale podejżewam że switch zmienną $wynik2['Typ'] rozumie jako: $wynik2['Typ'] = tu nic nie ma;
I tu rodzi się pytanie jak wyświetlić Typ z tej bazy.
!*!
A co zwraca var_dump dla $wynik2? Jak nic, to połączenie z bazą masz złe.
R_D_U
Połączenie z bazą jest dobre bo wyżej jest skrypt który wyświetla masę różnych rekordów.
Paczajcie cały skrypt:

  1. require_once('config.php');
  2.  
  3. mysql_connect ($ip,$login,$haslo);
  4.  
  5. $gracz = $_GET['nick'];
  6. $wynik = mysql_query("SELECT * FROM gracze WHERE nick='$gracz' ORDER BY nick");
  7.  
  8. if(mysql_num_rows($wynik)>0){
  9. while ($txt = mysql_fetch_assoc($wynik))
  10. {
  11. echo '<table>';
  12. echo '<tr>';
  13. echo '<td align="center" class="box" width="350"><font class="nick">'.$txt['Nick'].'</font></td>';
  14. echo '</tr>';
  15. echo '</table><br>';
  16.  
  17. echo '<table cellspacing="10">';
  18. echo '<tr>';
  19. echo '<td align="center" class="box" width="150"><font class="typstat1">Respekt</font><br><font class="typstat2">'.$txt['Respekt'].'</font></td>';
  20. echo '<td align="center" class="box" width="150"><font class="typstat1">Czas w grze</font><br><font class="typstat2">'.round($txt['CzasGry']/3600, 1).'</font><font class="typstat1"> godz.</font></td>';
  21. echo '</tr>';
  22. echo '</table>';
  23.  
  24.  
  25. echo '<table cellspacing="10">';
  26. echo '<tr>';
  27. echo '<td align="center" class="box" width="150"><font class="typstat1">Kasa</font><br><font class="typstat2">'.$txt['Kasa'].' $</font></td>';
  28. echo '<td align="center" class="box" width="150"><font class="typstat1">W banku</font><br><font class="typstat2">'.$txt['Bank'].' $</font></td>';
  29. echo '</tr>';
  30. echo '</table>';
  31.  
  32. echo '<table cellspacing="10">';
  33. echo '<tr>';
  34. echo '<td align="center" class="box" width="150"><font class="typstat1">Kicków</font><br><font class="typstat2">'.$txt['Kickow'].'</font></td>';
  35. echo '<td align="center" class="box" width="150"><font class="typstat1">Banów</font><br><font class="typstat2">'.$txt['Banow'].'</font></td>';
  36. echo '</tr>';
  37. echo '</table>';
  38.  
  39. echo '<table>';
  40. echo '<tr>';
  41. echo '<td align="center" class="box"><font class="typstat1">Wygrane WG: </font><font class="typstat2">'.$txt['WinsWG'].'</font><br>';
  42. echo '<font class="typstat1">Wygrane RACE: </font><font class="typstat2">'.$txt['WinsRACE'].'</font><br>';
  43. echo '<font class="typstat1">Wygrane CH: </font><font class="typstat2">'.$txt['WinsCH'].'</font><br>';
  44. echo '<font class="typstat1">Wygrane DR: </font><font class="typstat2">'.$txt['WinsDR'].'</font><br>';
  45. echo '<font class="typstat1">Wygrane LB: </font><font class="typstat2">'.$txt['WinsLB'].'</font><br>';
  46. echo '<font class="typstat1">Wygrane ST: </font><font class="typstat2">'.$txt['WinsST'].'</font><br>';
  47. echo '<font class="typstat1">Wygrane HAY: </font><font class="typstat2">'.$txt['WinsHAY'].'</font><br>';
  48. echo '<font class="typstat1">Wygrane SS: </font><font class="typstat2">'.$txt['WinsSS'].'</font><br>';
  49. echo '<font class="typstat1">Wygrane UT: </font><font class="typstat2">'.$txt['WinsUT'].'</font></td><br>';
  50. echo '</tr>';
  51. echo '</table>';
  52. }
  53.  
  54.  
  55.  
  56. $wynik2 = mysql_query("SELECT * FROM vipy WHERE nick='$gracz' ORDER BY Typ");
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63. switch ($wynik2[Typ]) // tylko co tu??
  64. {
  65. case 1:
  66. echo "VIP";
  67. break;
  68.  
  69. case 2:
  70. echo "Gold vip";
  71. break;
  72.  
  73. default:
  74. echo "gracz";
  75. break;
  76.  
  77. }
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85. } else {
  86. if(!isset($_GET['nick'])==0){
  87. echo '<font class="niemagracza">Nie ma takiego gracza!!</font>';
  88. }
  89. }
  90.  
  91.  
  92. ?>
!*!
Cytat(R_D_U @ 3.02.2013, 18:09:29 ) *
Paczajcie

Co to znaczy?

Twoje drugie połączenie z bazą jest błędne, porównaj chociaż to z pierwszym.

I nie
  1. switch ($wynik2[Typ])

tylko
  1. switch($wynik2['Typ'])


R_D_U
Jak połączenie jest błędne skoro skrypty działają.
A to:

switch ($wynik2['Typ'])

patrzyłem na sposoby u żaden nie działa.
!*!
http://pl.wikibooks.org/wiki/PHP/Jak_to_się_robiło_kiedyś%3F Nie widzę tego u Ciebie.
R_D_U
Teraz mam tak:
  1. $wynik2 = mysql_query("SELECT * FROM vipy WHERE nick='$gracz' ORDER BY nick");
  2.  
  3. while($txt2 = mysql_fetch_assoc($wynik2)){
  4.  
  5. switch ($txt2['Typ']) // tylko co tu??
  6. {
  7. case 1:
  8. echo "VIP";
  9. break;
  10.  
  11. case 2:
  12. echo "Gold vip";
  13. break;
  14.  
  15. default:
  16. echo "gracz";
  17. break;
  18.  
  19. }
  20. }

Prawie działa znaczy pokazuje VIP Gold Vip ale jak w tej bazie nie ma gracza to niech pokazuje gracz ale teraz nic nie pokazuje nie działa:
  1. default:
  2. echo "gracz";
  3. break;
_Borys_
W bazie masz dużymi literami Nick, Typ a w zapytaniu małymi.
R_D_U
To nie ma znaczenia.
!*!
sprawdzaj zmienne w każdym punkcie kodu za pomocą var_dump() poza tym poczytaj dokładnie jak to powinno być zrobione z linku który już podałem.
R_D_U
Nie rozumiem.
!*!
Debuguj i sprawdzaj co zawierają zmienne do jakich się odwołujesz.
R_D_U
Nadal cie ne kapuje, mi chodzi tylko o to że jeśli nie ma gracza w tej tabeli to niech wypisze jakieś słowo.
!*!
to sprawdź czy gracz istnieje isset i na tej podstawie wyświetl typ później. Przeczytaj jeszcze raz co zotało napisane w tym temacie.
R_D_U
A gdzie umieścic isset??
_Borys_
Cytat
Prawie działa znaczy pokazuje VIP Gold Vip ale jak w tej bazie nie ma gracza to niech pokazuje gracz ale teraz nic nie pokazuje nie działa


W ten sposób działa:

  1. if (mysql_num_rows($wynik2) > 0)
  2. {
  3. while ($txt2 = mysql_fetch_assoc($wynik2))
  4. {
  5. switch ($txt2['Typ'])
  6. {
  7. case 1:
  8. echo 'VIP';
  9. break;
  10. case 2:
  11. echo 'Gold vip';
  12. break;
  13. default:
  14. break;
  15. }
  16. }
  17. } else
  18. {
  19. echo 'Gracz';
  20. }
R_D_U
Działa, teraz odrębna sprawa bo chciałbym zsumowac cały respekt graczy jak to zrobic tabela gracze rekord respekt
_Borys_
Nie znamy struktury tabeli, jeśli nie jest tajemnicą wrzuć screena albo wejdź w phpMyAdmin do odpowiedniej bazy i potem u góry klikasz SQL, w oknie które się pokaże wpisz SHOW CREATE TABLE twojatabela, skopiuj wynik i wrzuć tutaj jeśli tabela nie jest duża.
R_D_U
Zapytanie starczy??
SELECT *
FROM `gracze`
WHERE `Respekt`

bo mi sie net pieprzy i każdy upload zatrzymuje się w pewnej części.
Chce wszystkie cyfry z respektu wyświetlić zsumowane
_Borys_
Sumowanie w MYSQL
R_D_U
Jak dobrze kumam coś takiego questionmark.gif
  1. $query = 'SELECT SUM(Respekt) AS suma FROM gracze';
  2. $result = mysql_query($query);
  3. echo mysql_result($result, 0);
_Borys_
niepotrzebne AS suma, w ten sposób przypisujesz wynik do $suma, ale po co skoro wynik masz w $result
R_D_U
Faktoza thx.
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.