Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zamiana z cyfr na nazwy
Forum PHP.pl > Forum > PHP
klopsik414
Witajcie,


zrobiłem stronę z wyświetleniem danych z MySql, posiadam tam kolumnę odpowiedzialną za exp, która wyświetla liczbę zdobytego expa. Chciałbym wykonać zamianę zamiast cyfr pokazywałby się nazwy rangi.

np. od 150 do 349 expa ranga nosiła by nazwę Sierżant | 350 do 689 expa Starszy sierżant i tak dalej
Pyton_000
mysql case to akurat najgorszy sposób na to.

Zato zapisanie w case w PHP juz tak. Ew. do tego możesz wymyślić sobie jakiś algorytm który sam będzie przeliczał to i odpowiednio dopasowywał rangi.

Np. masz przedział exp. 0 - 10000, ustalasz sobie ilość rang np 10. Dzielisz ten przedział tak że przedział n < n+1
Niree
  1. $sprawdz = zapytanie("Select * FROM `users` where `user`='$_SESSION['user']'");
  2. $dane = mysql_fetch_array($sprawdz_stacje);
  3. if($dane['exp'] >= 150 || $dane['exp'] <= 349)
  4. {
  5. echo 'masz rangę: Sierżant';
  6. }
  7. else if($dane['exp'] >= 350 || $dane['exp'] <= 689)
  8. {
  9. echo 'masz rangę: Starszy Sierżant';
  10. }


i tak dalej...
klopsik414
Dziękuje wszystkim smile.gif

Czy ktoś byłby tak miły i wpisał mi ten kod do mojego. Próbowałem sam lecz błędy wychodzą.


  1. $sprawdz = zapytanie("Select * FROM `users` where `user`='$_SESSION['user']'");
  2. $dane = mysql_fetch_array($sprawdz_stacje);
  3. if($dane['exp'] >= 150 || $dane['exp'] <= 349)
  4. {
  5. echo 'masz rangę: Sierżant';
  6. }
  7. else if($dane['exp'] >= 350 || $dane['exp'] <= 689)
  8. {
  9. echo 'masz rangę: Starszy Sierżant';
  10. }


  1. <?php
  2.  
  3. $baza=mysqli_connect("80.********","srv41736","*********","srv41736");
  4. if (mysqli_connect_errno())
  5. {echo "Błąd bazy danych";}
  6. $wynik = mysqli_query($baza,"SELECT * FROM lvlnew ORDER BY `exp` DESC LIMIT 15");
  7. echo '<table class=\"table table-responsive\"><thead><tr><th>Nick</th><th>Steam_Id</th><th>EXP</th></tr></thead>';
  8. while($row = mysqli_fetch_array($wynik))
  9.  
  10. {
  11. echo "<tr><td>{$row['name']}</td><td>{$row['steam']}</td><td><center>{$row['exp']}</center></td></tr>";
  12.  
  13. }
  14. echo '</table>';
  15.  
  16. mysqli_close($baza);
  17.  
  18.  
  19. ?>
Niree
Proszę ;-)
  1. <?php
  2.  
  3. $baza=mysqli_connect("80.********","srv41736","*********","srv41736");
  4. if (mysqli_connect_errno())
  5. {echo "Błąd bazy danych";}
  6. $wynik = mysqli_query($baza,"SELECT * FROM lvlnew ORDER BY `exp` DESC LIMIT 15");
  7. echo '<table class=\"table table-responsive\"><thead><tr><th>Nick</th><th>Steam_Id</th><th>EXP</th></tr></thead>';
  8. while($row = mysqli_fetch_array($wynik))
  9. {
  10. if($row['exp'] >= 0 && $row['exp'] <= 149) $text='Zero expa';
  11. if($row['exp'] >= 150 && $row['exp'] <= 349) $text='Sierżant';
  12. if($row['exp'] >= 350 && $row['exp'] <= 689) $text='Starszy Sierżant';
  13. echo "<tr><td>{$row['name']}</td><td>{$row['steam']}</td><td><center>{$text}</center></td></tr>";
  14. }
  15. echo '</table>';
  16.  
  17. mysqli_close($baza);
  18.  
  19.  
  20. ?>


Drobna pomyłka, pomyliłem || z && biggrin.gif
klopsik414
Dziękuje bardzo ładnie śmiga smile.gif

Ostatnia prośba jeżeli oczywiście można szukałem nawet kiedyś miałem taką funkcje sprawdzania w formularzu czy poprawnie wysłano dane.

Użytkownik powinien wysłać w formacie "STEAM_0:0:cyfry"

  1. <tr>
  2. <td align=\"right\" width=\"250px\">STEAM_ID: </td>
  3. <td align=\"left\"><div class=\"input-group\"><input type=\"text\" class=\"form-control\" name=\"steam\" style=\"width: 215px\" placeholder=\"np.STEAM_0:0:111111111\"></td></div>
  4. </tr>




  1. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  2.  
  3.  
  4. elseif (!empty($_POST['steam'])) {
  5. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość



viking
  1. if (preg_match('/^STEAM_0:0:\d+$/', $_POST['steam'])) {}
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.