¿Cómo cambiar el color del texto de un input en PHP dependiendo de lo que reciba de una consulta en Mysql?

publicado por: Anonymous

Buenas tengo la siguiente tabla en mi base de datos

notas

db

Y esta es mi PHP con la tabla donde se me muestran

notas.php

notas

    <table class="table table-hover" border="1">
<thead>
<tr>
<td><b>RUT</b></td>
<td><b>Nombre</b></td>
<td><b>Apellido</b></td>
<td><b>Notas</b></td>
</tr>
</thead>
<tbody>
<?php

$connect = mysqli_connect("localhost","root", "","liceo");
if (!$connect) {
die(mysqli_error());
}
$results = mysqli_query($connect,"SELECT rut, nombre, apellido FROM alumnos");
while($row = mysqli_fetch_object($results)) {
$rut = $row->rut;
$boo = 0; /* Iniciamos la Variable Auxiliar
          que indicará cuantas notas se imprimió  por cada Alumno  */
$results2 = mysqli_query($connect,"SELECT nota FROM notas WHERE rut_alumno = '$rut' LIMIT 4");
?>
<tr>
<td><?=$row->rut?></td>
<td><?=$row->nombre?></td>
<td><?=$row->apellido?></td>
<td>
<?php
while($nota = mysqli_fetch_object($results2)):
?>


 <input type="text" name="pin" maxlength="2" size="2" value="<?=$nota->nota?>" style="color: <?php echo $color; ?>">

<?php
    $boo +=1;/* Incrementamos después de Imprimir la nota del Alumno*/
endwhile;
/* Si la variable es menor a 2 , es decir no se imprimieron las 2 notas respectivas*/
if($boo<4){ 
    /* Imprimimos  inputs de value 0 hasta que sea < 2 , dado que si el
    el valor de $boo es 1 o 0 , primero se realizará el echo y luego el incremento
    Sí $boo es 0 -> Iteración 0 - Imprime el input - Incrementa $boo -> $boo = 1
                    Iteración 1 - Imprime el input - Incrementa $boo -> $boo = 2
                    Termina el for dado que 2 no es menor que 2
    Sí $boo es 1 -> Iteración 0 - Imprime el input - Incrementa $boo -> $boo = 2
                    Termina el For dado que 2 no es menor que 2
     */
    for (; $boo < 4; $boo++) { 
        echo '<input type="text" name="pin" maxlength="2" size="2" value="10">';
    }
}
?>
</td>
</tr>
<?php
  }
?>
</tbody>
</table>

¿Cómo puedo hacer una consulta para establecer que si la nota es igual o mayor a 4, esté de color azul, y si es menor a 4 color de rojo?

solución

Con la pregunta tal cual está en el momento de responder, con la información dada, entiendo que quieres cambiar el color del número dentro del inputcada vez que se realiza la consulta.

Una solución sencilla sería usar operadores ternarios.

//...
<?php 
while($nota = mysqli_fetch_object($results2)):
$color = ($nota->nota >= 4)? '#0000ff' : '#ff0000'; #<-- solo tienes que añadir esta línea
?>
<input type="text" name="pin" maxlength="2" size="2" 
       value="<?=$nota->nota?>" style="color: <?php echo $color; ?>">
//...
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *