Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] [MYSQL]Warunek if w poleceniu echo
Forum PHP.pl > Forum > Przedszkole
martin1978
Witam
  1.  
  2. <table border="1" width="100%" cellspacing="0" cellpadding="0" bordercolorlight="#000000">
  3.  
  4. <tr>
  5. <td width="100%" colspan="6" bgcolor="#FF7F50"> <p align="center"><b><font size="5">Tabela</font></b></td>
  6. </tr>
  7.  
  8. <tr>
  9. <td width="6%" align="center" bgcolor="#E0E0E0"> <p align="center"><font size="4"><b> ID</b></font></td>
  10. <td width="28%" align="center" bgcolor="#E0E0E0"> <p align="center"><font size="4"><b>Nazwa</b></font></td>
  11. <td width="28%" align="center" bgcolor="#E0E0E0"><font size="4"><b>Cena</b></font></td>
  12. <td width="28%" align="center" bgcolor="#E0E0E0"><font size="4"><b>Ilosc</b></font></td>
  13. <td width="38%" align="center" bgcolor="#E0E0E0"><font size="4"><b>Picture</b></font></td>
  14. </tr>
  15.  
  16. <?php
  17. phpinfo() ;
  18. mysql_connect("localhost, nazwadb, haslo") ;
  19. mysql_select_db (nazwadb);
  20. $zapytanie = "SELECT * FROM Bolek ORDER BY Nazwa ASC";
  21.  
  22. $wykonaj = mysql_query ($zapytanie);
  23. while($wiersz=mysql_fetch_array ($wykonaj)) {
  24. echo " <tr>
  25. <td width=\"6%\" bgcolor=\"#32CD32\" >".$wiersz['id']."</td>
  26. <td width=\"18%\" bgcolor=\"#32CD32\" >".$wiersz['Nazwa']."</td>
  27.  
  28. if (".$wiersz['Cena']." > 1) {
  29. <td width=\"18%\" bgcolor=\"#32CD32\" >".$wiersz['Cena']."</td>
  30. } else {
  31. <td width=\"18%\" bgcolor=\"#FF8C00\" >".$wiersz['Cena']."</td>
  32. } ;
  33.  
  34. <td width=\"18%\" bgcolor=\"#32CD32\" >".$wiersz['Ilosc']."</td>
  35. <td width=\"38%\" bgcolor=\"#32CD32\" > COSS </td>
  36.  
  37. </tr>";
  38. }
  39. ?>
  40.  
  41.  

CEL: Chcę osiągnąć taki, żeby w kolumnie cena jak sie pojawi wartość większa od 1, to komórki tabeli beda w kolorze pomaranczowym , a jezeli nie to pozostaje w zielonym.
Zrobiłem tak jak wyżej, ale mi tego warunku nie sprawdza, nie wiem dlaczego??
I dodatkowo przesuwa wszystkie wartości z kolumny cena do kolumny Ilość, a w kolumnie Picture są wartości z kolumny Ilość, natomiast w kolumnie Picture są wartości z kolumny Ilość itd.
Gdzie robię błąd??
Z góry dziękuje za odpowiedzi
Pozdrawiam
peter13135
  1. mysql_connect("localhost", "nazwadb", haslo") ;

chyba coś nie tak smile.gif

a dalej.. zrób tak
  1. echo 'lalalala';
  2. if(warunek)
  3. echo 'aaaaa';
  4. else echo 'bbbbb'


albo
  1. echo (warunek ? 'warunek spelniony' : 'warunek nie spelniony');
martin1978
Już poprawiłem, ale to byl tylko bląd przy wpisywaniu na forum smile.gif, ale tak czy inaczej dzieki.

Jednak skupmy się nad tym:
  1. while($wiersz=mysql_fetch_array ($wykonaj)) {
  2. echo " <tr>
  3. <td width=\"6%\" bgcolor=\"#32CD32\" >".$wiersz['id']."</td>
  4. <td width=\"18%\" bgcolor=\"#32CD32\" >".$wiersz['Nazwa']."</td>
  5. if (".$wiersz['Cena']." > 1) {
  6. <td width=\"18%\" bgcolor=\"#32CD32\" >".$wiersz['Cena']."</td>
  7. } else {
  8. <td width=\"18%\" bgcolor=\"#FF8C00\" >".$wiersz['Cena']."</td>
  9. } ;
  10. <td width=\"18%\" bgcolor=\"#32CD32\" >".$wiersz['Ilosc']."</td>
  11. <td width=\"38%\" bgcolor=\"#32CD32\" > COSS </td>
  12. </tr>";
  13. }


Niestety te dwa rozwiązania co podałeś nie dały efektu, i jest dalej to samo.
Daiquiri
Przecież Twój if jest ujęty w cudzysłowie (5 linijka). Podobnie jak else dalej.
martin1978
Zrobiłem to tak:
  1.  
  2. $zapytanie = "SELECT * FROM Ares ORDER BY Nazwa ASC";
  3. #$zapytanie = "SELECT * FROM Ares ORDER BY Nazwa DESC LIMIT 1";
  4. $wykonaj = mysql_query ($zapytanie);
  5. $wiersz=mysql_fetch_array ($wykonaj) ;
  6. if ($wiersz['Cena'] > 2) {
  7. $kolor = orange;
  8. } else {
  9. $kolor = green;
  10. }
  11. while($wiersz=mysql_fetch_array ($wykonaj)) {
  12.  
  13. echo " <tr>
  14. <td width=\"6%\" bgcolor=\"#32CD32\" >".$wiersz['id']."</td>
  15. <td width=\"18%\" bgcolor=\"#32CD32\" >".$wiersz['Nazwa']."</td>
  16. <td width=\"18%\" bgcolor=\"$kolor\" >".$wiersz['Cena']."</td>
  17. <td width=\"18%\" bgcolor=\"#32CD32\" >".$wiersz['Ilosc']."</td>
  18. <td width=\"38%\" bgcolor=\"#32CD32\" > COSS </td>
  19.  
  20. </tr>";
  21. }
  22.  


Tyle, że dalej jest cos nie tak sad.gif. Chodzi o warunek, faktycznie jak wartości w cena są wieksze od 2 to wybiera orange, ale nawet tam gdzie sa wartosci < 2 tez jest orange. Dlaczego ...?
Ghost_78
Jak widze brakuje troche podstaw wink.gif ale chyba po to miedzy innymi jest to forum.

Zobacz:
  1. $wykonaj = mysql_query ($zapytanie);
  2. $wiersz=mysql_fetch_array ($wykonaj) ;
  3. if ($wiersz['Cena'] > 2) {
  4. $kolor = orange;
  5. } else {
  6. $kolor = green;
  7. }
  8. while($wiersz=mysql_fetch_array ($wykonaj)) {

wykonujesz if'a przed petla. a powiniennes w petli tak, zeby za kazdym razem byl sprawdzany i odpowiednio ustalal Twoj kolor

  1. $wykonaj = mysql_query ($zapytanie);
  2. while($wiersz=mysql_fetch_array ($wykonaj)) {
  3.  
  4. if ($wiersz['Cena'] > 2) {
  5. $kolor = orange;
  6. } else {
  7. $kolor = green;
  8. }
  9.  
  10. //.... cd kodu


poza tym wygodniej chyba jest uzywac mysql_fetch_assoc zamiast mysql_fetch_array
martin1978
Tak, to prawda jestem poczatkujący smile.gif.
I dziękuję za pomoc Ghost78. To działa smile.gif
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.