Zmiana koloru wiersza w zależności od wyrażenia

1

Cześć, nie moge znaleźć rozwiązania na moje widzi mi się odnośnie zmiany koloru wiersza w zależności od wartości wiersza. Są to 4 wartości, więc bool czy if else odpada.
Tutaj jedna z moich prób:

                <?php $ret=mysqli_query($con,"select * from prequest order by id desc");
				$cnt=1;
				while($row=mysqli_fetch_array($ret))
				{ 
                    		$style = '';

    	if($row['stat'] == 'Sukces'){$style = 'style="background-color: green;"';}
		if($row['stat'] == 'Spadek'){$style = 'style="background-color: red;"';}?>
                    
                    
                  <tr >
                    <td class="v-align-middle"><?php echo $cnt;?></td>
                    <td class="v-align-middle"><?php echo $row['name'];?></td>
                    <td class="v-align-middle"><?php echo $row['telefon'];?></td>
                    <td class="v-align-middle"><?php echo $row['stat'];?></td>
                    <td class="v-align-middle">
                        <?php echo $row['pas'];?> 
                        <?php echo $row['system'];?>
                        <?php echo $row['practi'];?>
                        <?php echo $row['gold'];?>
                        <?php echo $row['silver'];?>
                        <?php echo $row['tablet'];?>
                        <?php echo $row['lozko'];?>
                        <?php echo $row['multi'];?>
                        <?php echo $row['turbo'];?>
                        <?php echo $row['wyciskarka'];?>
                    </td>
                      <td><a href="quote-details.php?id=<?php echo $row['id'];?>"><button class="btn-danger-dark">Więcej...</button></a></td>
                  </tr>
                 <?php $cnt=++$cnt; } ?>

Później próbowałem tak:

if($row['stat'] == 'Sukces')
{
<tr style="background-color: green;"> //styl w cssach i tylko nadać klasę dla TR - też nie poszło 
}
1

Czytam Twój post 3 raz, ale nadal za bardzo nie rozumiem, o co Ci chodzi. Jest pierwsza w nocy, więc nie jakoś bardzo późno. Podejrzewam więc, że przyczyna leży w tym, że swój problem opisałeś bardzo chaotycznie i niestarannie. Postaraj się go przeedytować i napisać konkretnie, co chcesz osiągnąć. I nie pisz, że if...else odpada, bo wydaje mi się, że się lekko mijasz z prawdą :P

Poza tym nie wiem, czemu nie zrobisz tego najprościej jak można, czyli (podaję pseudokod, ale myślę, że dasz radę to przerobić na coś prawdziwego) coś w stylu

$kolor=czarny;
if STAT==OK $kolor=zielony;
if STAT==BAD $kolor=czerwony;
if STAT==LOST $kolor=blue;
//i tak dalej, możesz dodać dowolną ilość warunków/sprawdzeń
echo '<tr style=color: $kolor>'
1
cerrato napisał(a):

Czytam Twój post 3 raz, ale nadal za bardzo nie rozumiem, o co Ci chodzi. Jest pierwsza w nocy, więc nie jakoś bardzo późno. Podejrzewam więc, że przyczyna leży w tym, że swój problem opisałeś bardzo chaotycznie i niestarannie.

Fakt, jak teraz to przeczytałem, to sam się za głowę złapałem... Szacunek za zrozumienie, bo o to dokładnie chodziło ;)

Natomiast Twoje rozwiązanie za nic nie chce działać, aktualnie mój fragment kodu wygląda tak:

                <?php $ret=mysqli_query($con,"select * from prequest order by data_wyjazdu");
				$cnt=1;
				while($row=mysqli_fetch_array($ret))
				{ 
                    		
                    $kolor="black";
                    if($row['stat'] == 'Sukces'){$kolor="green";}
                    if($row['stat'] == 'Spadek'){$kolor="red";}
                    if($row['stat'] == 'Potwierdzony'){$kolor="aqua";}
                    if($row['stat'] == 'Spadek'){$kolor="yellow";}
        
    	?>
                    
                    
                  <tr style=color: $kolor>
                    <td class="v-align-middle"><?php echo $cnt;?></td>
                    <td class="v-align-middle"><?php echo $row['name'];?></td>
                    <td class="v-align-middle"><?php echo $row['data_wyjazdu'];?></td>
                    <td class="v-align-middle"><?php echo $row['stat'];?></td>
                    <td class="v-align-middle">
                        <?php echo $row['pas'];?> 
                        <?php echo $row['system'];?>
                        <?php echo $row['practi'];?>
                        <?php echo $row['gold'];?>
                        <?php echo $row['silver'];?>
                        <?php echo $row['tablet'];?>
                        <?php echo $row['lozko'];?>
                        <?php echo $row['multi'];?>
                        <?php echo $row['turbo'];?>
                        <?php echo $row['wyciskarka'];?>
                    </td>
                      <td><a href="quote-details.php?id=<?php echo $row['id'];?>"><button class="btn-danger-dark">Więcej...</button></a></td>
                  </tr>
                 <?php $cnt=++$cnt; } ?>
                    
2
Maksymilian Rękawek napisał(a):

Natomiast Twoje rozwiązanie za nic nie chce działać, aktualnie mój fragment kod wygląda tak:

Sakramentalne pytanie: nie działa, czyli ...

Nie masz stylu poprawnie napisanego (oprawionego w podwójne pazurki), to co widzę na pierwszy rzut oka. Weź jakąkolwiek dokumentację do HTML-a i oswój się jak się to pisze.
Nie do końca wierzę, że kilka danych jest w jednym mega TD

2

Poza tym... Idealna opcja zamiast if będzie switch, a najlepiej zapakować go w funkcje, która na wejściu przyjmie jeden parametr i wypluje kolor.

0
AnyKtokolwiek napisał(a):
Maksymilian Rękawek napisał(a):

Natomiast Twoje rozwiązanie za nic nie chce działać, aktualnie mój fragment kod wygląda tak:

Sakramentalne pytanie: nie działa, czyli ...

Nie masz stylu poprawnie napisanego (oprawionego w podwójne pazurki), to co widzę na pierwszy rzut oka. Weź jakąkolwiek dokumentację do HTML-a i oswój się jak się to pisze.
Nie do końca wierzę, że kilka danych jest w jednym mega TD

Od początku tego wątku, miałem problemy techniczne z moim myśleniem, dopiero jak dzisiaj wstałem to w 5 min ogarnąłem gdzie twki problem...

 <?php $ret=mysqli_query($con,"select * from prequest order by data_wyjazdu");
				$cnt=1;
				while($row=mysqli_fetch_array($ret))
				{ 
                    		
                    $kolor='black';
                    if($row['stat'] == 'Sukces'){$kolor='green';}
                    if($row['stat'] == 'Spadek'){$kolor='red';}
                    if($row['stat'] == 'Potwierdzony'){$kolor='aqua';}
                    if($row['stat'] == 'Spadek'){$kolor='yellow';}
                    
                
                    ?>
                    
                    
                  <tr style="background-color: <?php echo $kolor ?>">
                    <td class="v-align-middle"><?php echo $cnt;?></td>
                    <td class="v-align-middle"><?php echo $row['name'];?></td>
                    <td class="v-align-middle"><?php echo $row['data_wyjazdu'];?></td>
                    <td class="v-align-middle"><?php echo $row['stat'];?></td>
                    <td class="v-align-middle">
                        <?php echo $row['pas'];?> 
                        <?php echo $row['system'];?>
                        <?php echo $row['practi'];?>
                        <?php echo $row['gold'];?>
                        <?php echo $row['silver'];?>
                        <?php echo $row['tablet'];?>
                        <?php echo $row['lozko'];?>
                        <?php echo $row['multi'];?>
                        <?php echo $row['turbo'];?>
                        <?php echo $row['wyciskarka'];?>
                    </td>
                      <td><a href="quote-details.php?id=<?php echo $row['id'];?>"><button class="btn-danger-dark">Więcej...</button></a></td>
                  </tr>
                 <?php $cnt=++$cnt; } ?>

Finalnie wszystko ładnie śmiga, dzięki wielkie!

1 użytkowników online, w tym zalogowanych: 0, gości: 1