Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błądzę z IF ...
Forum PHP.pl > Forum > PHP
slupek
Postanowiłęm zmienić działający skrypt. W rekordzie "nagroda" zapisuję użytkownikom ich nagrody. Cyfrą 1 oznaczam pierwszą, 2 drugą i tak w koło Macieju. Skrypt działał, wyświetlało obrazki. Teraz chcę, żeby była możliwość wyświetlania np. 2 lub 3 nagród jednocześnie, jeśli użytkownik je posiada. Zmieniłem typ danych "nagroda" na "set('1', '2', '3', '4')". Daję w formularzu (lub ręcznie z bazy) np 2 nagrody, a itak wyświetla mi tylko pierwszą. Łeb pęka, bom jest humanista niestety. Pomożecie? (a'la Gierek smile.gif ) NAprawdę z góry dziękuję.

fragment kodu:
Kod
if ($nagroda < 1) {
      print "<tr>";
      print "<td width=8% height=18 align=center><img src=n0.jpg alt='Brak wyróżnień' =40></td>";        

    } else if ($nagroda <= 1) {
      print "<tr>";
            
      print "<td width=8% height=18 align=center><img src=n1.jpg alt= 'HIGH ACTIVITY AWARD' =40></td>";
          
        

         } else if ($nagroda > 4) {
           print "<tr>";
      
      print "<td width=16% height=18 align=center><img src=n4.jpg alt=Inna =40></td>";

         } else if ($nagroda > 2) {
           print "<tr>";
            
           print "<td width=16% height=18 align=center><img src=n3.jpg alt= 'FAIR PLAY AWARD' =40></td>";
      

         } else if ($nagroda > 1) {
           print "<tr>";
          
      print "<td width=16% height=18 align=center><img src=n2.jpg alt= 'HIGH QUALIFICATION AWARD' =40></td>";
          
   }
   print "</tr>";
Darti
  1. <?php
  2. $rank = explode(",",$nagroda);
  3.  
  4. foreach ($rank as $nagroda){
  5. print '<tr><td width="8%" height="18" align="center">';
  6. switch ($nagroda) {
  7. case 0:
  8. print '<img src="n0.jpg" alt="Brak wyróżnień">';
  9. break;
  10. case 1:
  11. print '<img src="n1.jpg" alt="HIGH ACTIVITY AWARD">';
  12. break;
  13. case 2:
  14. print '<img src="n2.jpg" alt="HIGH QUALIFICATION AWARD">';
  15. break;
  16. case 3:
  17. case 4:
  18. print '<img src="n3.jpg" alt="FAIR PLAY AWARD">';
  19. break;
  20. default:
  21. print '<img src="n4.jpg" alt="Inna">';
  22. }
  23. print "</td></tr>";
  24. }
  25. ?>


edytowałem bo nie zauważyłem że pole w bazie to SET winksmiley.jpg
starach
Najprościej będzie umieścić nagrody w tablicy, a potem wykonać pętlę która sprawdzi wszystkie nagrody.
  1. <?php
  2. $nagrody = array(1,5,3,4);
  3. for($i=0; $i<count($nagrody); $i++)
  4. {
  5. if($nagrody[$i]==1) { // nagroda pierwsza
  6.  
  7. } else if($nagrody[$i]==2) { // nagroda druga
  8.  
  9. } // i tak dalej
  10. }
  11. ?>
slupek
Cytat(orglee @ 28.05.2007, 00:46:42 ) *
Najprościej będzie umieścić nagrody w tablicy, a potem wykonać pętlę która sprawdzi wszystkie nagrody.


Nie wpadłbym na to, jestem niezmiernie wdzięczny, bo dzięki rozwiązaniu w tablicy wszystko funkcjonuje lepiej, niż się spodziewałem. MAm nadzieję, że będe mógł się kiedyś odwdzięczyć, zatem polecam się (w kwestiach humanistycznych najlepiej) niemal jak "produkty z ...iedronki". ;-)

Wielkie dzięki, do miłego.
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.