2016-10-26 4 views
0

Wenn time2 größer ist als Zeit 1 Ich möchte die Hintergrundfarbe zu rot ändern. Ich bin ein total noob in diesem und ich versuchte es jetzt seit Tagen, aber es nicht zur Arbeit. In CSS Ich habe .bgred {background: red;}Ändern Hintergrundfarbe mit if-Anweisung in PHP

<?php 
$sql = ("SELECT name, time1, time2 FROM myTable WHERE dates LIKE '".$_POST['dat']."' "); 
$result = mysqli_query($conn, $sql);   

if (mysqli_num_rows($result) > 0) {  

    echo "<table action='' method='POST'><tr> 
    <th>Name</th> 
    <th>Time1</th> 
    <th>Time2</th></tr>"; 

    // output data of each row 
    while($row = mysqli_fetch_assoc($result)) { 

     $var1 = $row["time1"]; 
     $var2 = $row["time2"]; 
     if($var2 < $var1) { 
      $bgred = 'class="bgred"'; 
     } else { 
      $bgred = ''; 
     } 

     echo "<tr><td>".$row["name"]."</td> 
     <td>".$row["time1"]."</td> 
     <td class="$bgred">".$row["time2"]."</td></tr>"; 
     } 
    } 

    echo "</table>"; 

mysqli_close($conn); 
?> 
+0

http://stackoverflow.com/a/39444025/3558278 – Deep

Antwort

0
$bgred = null; 
$rows = null; 

while($row = mysqli_fetch_assoc($result)) {  


    $var1 = $row["time1"]; 
    $var2 = $row["time2"]; 
    if($var2 < $var1) { 
     $bgred = 'class="bgred"';  
    } else { 
     $bgred = ''; 
    } 

    $rows .= '<tr> 
        <td>' . $row["name"] . '</td> 
        <td>' . $row["time1"] . '</td> 
        <td>' . $row["time2"] . '</td> 
      </tr>'; 
} 

echo '<table action="" method="POST"> 
     <tr> 
      <th>Name</th> 
      <th>Time1</th> 
      <th class="' . $bgred . '">Time2</th> 
     </tr> 
     ' . $rows . ' 
    </table>'; 

Haben Sie einen Grund haben doppelte Anführungszeichen zu benutzen?

1

Du Echo überall bgred $ nicht aus.

<?php 
$sql = ("SELECT name, time1, time2 FROM myTable WHERE dates LIKE '".$_POST['dat']."' "); 
$result = mysqli_query($conn, $sql); 

if (mysqli_num_rows($result) > 0) { 

echo "<table action='' method='POST'><tr> 
<th>Name</th> 
<th>Time1</th> 
<th>Time2</th></tr>"; 

// output data of each row 
while($row = mysqli_fetch_assoc($result)) {  


    $var1 = $row["time1"]; 
    $var2 = $row["time2"]; 

//edited here 
    if(strtotime($var2) < strtotime($var1)) { 
     $bgred = 'bgred'; 
//done with edit  
    } else { 
     $bgred = ''; 
    } 

    echo "<tr><td class='$bgred'>".$row["name"]."</td> 
    <td class='$bgred'>".$row["time1"]."</td> 
    <td class='$bgred'>".$row["time2"]."</td></tr>";  
    }  
}  

echo "</table>"; 
mysqli_close($conn); ?> 
+0

Ich habe meinen Beitrag bearbeitet. Ich habe ". $ Row [" time2 "].""; Aber es funktioniert immer noch nicht –

+0

Wenn Sie Quelle anzeigen, haben die richtigen die Klasse = bgred? Auch in Ihrem CSS versuchen Hintergrundfarbe: rot; – Chris

+0

Auch welche Art von Feld ist Zeit in Ihrer Datenbank? Timestamp, Datum, etc? Edited Antwort in Unix Zeit vor dem Vergleich zu konvertieren – Chris