ďťż

[PHP/MySQL] Problem z intrukcją IF + Pętla while

       

Podstrony


telcocafe

Ahoj
Mam skrypt, który zapisuje do bazy jakąś kategorię np:

kategoria1
kategoria2
Pozostale

Teraz próbuję wyświetlić obrazek w zależności od kategorii:
while($wiersz = mysql_fetch_array($wartosci2)) { if ($wiersz["dzial"] == 'kategoria1') { $zdjecie = 'obrazek1.jpg'; } else if ($wiersz["dzial"] == 'kategoria2') { $zdjecie = 'obrazek2.jpg'; } else if ($wiersz["dzial"] == 'Pozostale') { $zdjecie = 'pozostale.jpg'; } echo(" <br /> <img src='http://www.serwer.pl/zdjecia/$zdjecie' align='left'> "); (...)
I zawsze wyświetla mi obrazek1, mimo, że są różne kategorie. Gdzie mam błąd? Nazwy kategorii w instrukcji IF zgadzają się z nazwami podanymi w bazie...
Użytkownik sauron edytował ten post 16 sierpień 2007, 09:28


1. Umieszczaj kod w CODEBOX.
2. Czy warunek pętli while ma zostać od razu spełniony. Tak się dzieję (w 99% przypadkow) bo warunek $wiersz = mysql_fetch_array($wartosci2) ma wartosc true jesli uda się przypisac do zmiennej wiersz wartosc zworcona przez funkcje mysql_fetch_array($wartosci2). Czy tak ma byc? Jeśli nie zmień to na:
while($wiersz == mysql_fetch_array($wartosci2))
Jeśli tak ma być to wogule usuń pętlę while...
Użytkownik kokoss15 edytował ten post 16 sierpień 2007, 10:26

1. Umieszczaj kod w CODEBOX.
:faintthud:

2. Czy warunek pętli while ma zostać od razu spełniony. Tak się dzieję (w 99% przypadkow) bo warunek $wiersz = mysql_fetch_array($wartosci2) ma wartosc true jesli uda się przypisac do zmiennej wiersz wartosc zworcona przez funkcje mysql_fetch_array($wartosci2). Czy tak ma byc? Jeśli nie zmień to na:
while($wiersz == mysql_fetch_array($wartosci2))
Jeśli tak ma być to wogule usuń pętlę while...

a zgadnij, po co wstawiłem tam pętle while? Żeby przypisać wartości z tabeli do tablicy, co nie?

Trochę nie na temat, ale czy w tym wypadku nie lepiej użyć
elseIF
zamiast
else if...
??




Trochę nie na temat, ale czy w tym wypadku nie lepiej użyć
elseIF
zamiast
else if...
??

A co za różnica? Chyba tylko przyzwyczajenia :P Częśćiaj programiści piszą ze spacją else if, przynajmniej ja się częsciej z takim zapisem spotykałem. Zresztą, sam tak zawsze piszę :P

nie wiem, ale nie prościej, zamiast warunków, szybciej i skuteczniej użyć switch?
while($wiersz = mysql_fetch_array($wartosci2)) { switch($wiersz["dzial"] { case 'kategoria1': { $zdjecie = 'obrazek1.jpg'; break; } case 'kategoria2': { $zdjecie = 'obrazek2.jpg'; break; } case 'Pozostale': { $zdjecie = 'pozostale.jpg'; break; } } echo(" <br /> <img src='http://www.serwer.pl/zdjecia/$zdjecie' align='left'> "); (...)


~

Dziwne :P. Tym razem poszło. BTW. nie domknąłeś przy słowie kluczowym "switch" nawiasu ;].
Dzięki za pomoc

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.