Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Błądzę z IF ...
slupek
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 27.05.2007
Skąd: EPGD

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/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>";
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Darti
post
Post #2





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

Ostrzeżenie: (0%)
-----


  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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował Darti 28.05.2007, 00:38:39
Go to the top of the page
+Quote Post
starach
post
Post #3





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
slupek
post
Post #4





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 27.05.2007
Skąd: EPGD

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 08:09