New question

Question:

Date: 15-05-2019 10:15:15 (In Spanish)

hola tengo una duda.... quiero que al mostrar ciertos datos.. la celda me cambie de color... pero no lo he logrado alguien me puede ayudar[Resolved]

<?php

$conexion=mysqli_connect('localhost','root','','digital');

?>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

<link rel="stylesheet" href="css/estilos.css">
<title>Lista de Tareas</title>
<body>
<script scr="js/main1.js"></script>
</head>
<header>
<img src="img/logo_marcazeta.png">
<center>
<h1>PROGRAMACION PRODUCCION DIGITAL</h1>

<table class="table" id="mitabla">
<thead>
<tr>
<th>Fecha Ingreso</th>
<th>Fecha Entrega</th>
<th>Cliente</th>
<th>No Orden</td>
<th>Estado Pedido</th>
<th>Asesor</th>
<th>Doc Entrega</th>
<th>No Guia</th>
<th>Transportadora</th>
</tr>
</thead>
</header>

<?php
//$sql="SELECT * FROM proceso";
//$result=mysqli_query($conexion,$sql);

$sql="SELECT *, DATE_FORMAT(`fecha_entrega`,'%d/%m/%Y %H:%i:%s') AS my_date FROM proceso ORDER BY my_date ASC";
$result=mysqli_query($conexion,$sql);

while($mostrar=mysqli_fetch_array($result)){
$prioridad_color = array(
'En Proceso' => '#DD0000',
'Acabados' => '#FF00FF',
'Impresion' => '#151572',
'Empaque' => '#151572',
'Corte Zund' =>'#151572'
);

echo "<tr style='background-color:". $prioridad_color[$mostrar['estado']] ."'></tr>"
// echo '<tr style="background-color='. $prioridad_color[$mostrar['estado']] .'"></tr>'

?>

<tr>
<td><?php echo $mostrar['fecha_ingreso'] ?></td>
<td><?php echo $mostrar['fecha_entrega'] ?></td>
<td><?php echo $mostrar['cliente'] ?></td>
<td><?php echo $mostrar['opi'] ?></td>
<td><?php echo $mostrar['estado'] ?></td>
<td><?php echo $mostrar['asesor'] ?></td>
<td><?php echo $mostrar['documento_ent'] ?></td>
<td><?php echo $mostrar['no_guia'] ?></td>
<td><?php echo $mostrar['transporte'] ?></td>
</tr>

<?php

}
?>
</table>
</center>
</body>
</html>
Tags: Development - Form - HTML - HTML5 - PHP - Question Votes: 0 - Answers: 4 - Views: 11 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 15-05-2019 12:57:58 Hola

    Deberías ir depurando tu codigo para ir sabiendo donde esta el error.
    ¿Te da algun error?

    Te dejo un codigo de ejemplo similar al tuyo.

    Observa que el array de colores esta antes del while ya que no es necesario que este dentro de el.

    <?php
    $conexion = new mysqli("localhost", "root", "Pa$$", "TablaUsuarios");
    $query = $conexion->query("SELECT * FROM usuarios");
    
    $colorFila = array( 
        'Activo' => '#32CD32', 
        'Inactivo' => '#FFA500', 
        'Bloqueado' => '#CD5C5C',
        ); 
        
    if ($query->num_rows > 0) {
    // Hay registros para mostrar. dibujo la tabla
    
    ?>
    <table>
       <caption>Lista de usuarios con sus estados</caption>
    
       <thead> <!-- Encabezado de la tabla -->
           <tr>
               <th>Id</th>
               <th>Fecha Registro</th>
               <th>Usuario</th>
               <th>Estado</th>
           </tr>
       </thead>
       <tbody> <!-- Cuerpo de la tabla -->
    
    <?php
        // Filas de la tabla que corresponde a los registros de la base de datos
        while($fila = $query->fetch_assoc()) {
        ?>
    
            <tr bgcolor="<?php echo $colorFila[$fila['estado']] ?>">
                <td><?php echo $fila['id'] ?></td>
                <td><?php echo $fila['fechaRegistro'] ?></td>
                <td><?php echo $fila['usuario'] ?></td>
                <td><?php echo $fila['estado'] ?></td>
            </tr>
        <?php
        }
        ?>
       </tbody>
    </table>
    <?php
    } else {
        echo "No hay resultados.";
    }
    $conexion->close();
    



    El nombre del estado de la tabla de la base de datos es igual que el quiene el array de colores,es decir respetando mayúsculas y minúsculas.

    Espero que te sirva como guía
    Cualquier cosa nos comentas.

    Saludos
      Votes: 2 - Link answer
     
  • Date: 15-05-2019 15:05:59 Saludos...
    Para empezar abres y cierras el tr, y no debe ser asi..

    echo "<tr style='background-color:". $prioridad_color[$mostrar['estado']] ."'></tr>"


    Debes poner solo :

    echo "<tr style='background-color:". $prioridad_color[$mostrar['estado']] ."'>";


    y no poner el otro <tr> sino hasta que lleges al final, ejemplo :

    /* Codigo anterior */
    echo "<tr style='background-color:". $prioridad_color[$mostrar['estado']] ."'>"
    ?>
    
    
    <td><?php echo $mostrar['fecha_ingreso'] ?></td>
    <td><?php echo $mostrar['fecha_entrega'] ?></td>
    <td><?php echo $mostrar['cliente'] ?></td>
    <td><?php echo $mostrar['opi'] ?></td>
    <td><?php echo $mostrar['estado'] ?></td>
    <td><?php echo $mostrar['asesor'] ?></td>
    <td><?php echo $mostrar['documento_ent'] ?></td>
    <td><?php echo $mostrar['no_guia'] ?></td>
    <td><?php echo $mostrar['transporte'] ?></td>
    </tr>
    
    <?php 
    /* demas codigo */



    Cabe mencionar que si una letra es diferente a como lo tienes, entonces hasta te marcara error, osea que no encontrara la "$prioridad_color" , ocupa el isset.. (Puedes mejorar mucho ese código, por ejemplo el array de colores fuera... así solo lo declaras una vez, y como lo tienes lo declaras cada fila (siendo que siempre seran los mismos valores).

    Espero en estos dias poner mi pagina para que te leas algo de fundamentos de programación... (Lo digo en buen termino)

    Saludos.

    Stryfe™
      Votes: 0 - Link answer
     
  • Date: 16-05-2019 08:28:07 Personalmente no me gusta revolver PHP con HTML pues complica el mantenimiento del código.

    En fin, separé PHP de HTML para mejorar la legibilidad, corregí algunos errores y aquí tienes otra versión.

    <?php
    $conexion = mysqli_connect('localhost', 'root', '', 'digital');
    
    $prioridadColor = [
        'En Proceso' => '#DD0000',
        'Acabados'   => '#FF00FF',
        'Impresion'  => '#151572',
        'Empaque'    => '#151572',
        'Corte Zund' => '#151572',
    ];
    $resultado       = '';
    
    $sql    = "SELECT *, DATE_FORMAT(`fecha_entrega`,'%d/%m/%Y %H:%i:%s') AS my_date FROM proceso ORDER BY my_date ASC";
    $result = mysqli_query($conexion, $sql);
    
    while ($mostrar = mysqli_fetch_array($result)) {
        $resultado .= <<< HTML
                    <tr style="background-color: {$prioridadColor[$mostrar['estado']]}">
                        <td>{$mostrar['fecha_ingreso']}</td>
                        <td>{$mostrar['fecha_entrega']}</td>
                        <td>{$mostrar['cliente']}</td>
                        <td>{$mostrar['opi']}</td>
                        <td>{$mostrar['estado']}</td>
                        <td>{$mostrar['asesor']}</td>
                        <td>{$mostrar['documento_ent']}</td>
                        <td>{$mostrar['no_guia']}</td>
                        <td>{$mostrar['transporte']}</td>
                    </tr>
    
    HTML;
    }
    
    if (empty($resultado)) {
        $resultado = '<tr><td colspan="9">No se encontraron registros</td></tr>';
    }
    ?>
    <!DOCTYPE html>
    <html lang="es">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
            <link rel="stylesheet" href="css/estilos.css">
            <title>Lista de Tareas</title>
            <script src="js/main1.js"></script>
        </head>
        <body>
            <img alt="logo" src="img/logo_marcazeta.png">
            <h1>PROGRAMACION PRODUCCION DIGITAL</h1>
            <table class="table" id="mitabla">
                <thead>
                    <tr>
                        <th>Fecha Ingreso</th>
                        <th>Fecha Entrega</th>
                        <th>Cliente</th>
                        <th>No Orden
                        <th>Estado Pedido</th>
                        <th>Asesor</th>
                        <th>Doc Entrega</th>
                        <th>No Guia</th>
                        <th>Transportadora</th>
                    </tr>
                </thead>
                <tbody>
    <?= $resultado ?>
                </tbody>
            </table>
        </body>
    </html>
    
      Votes: 2 - Link answer
     
  • Date: 16-05-2019 09:19:55 Saludos Ernesto Peimbert, en lo personal creo que es mejor ayudar que resolver los problemas, ya que así no trabajan la lógica ni se esfuerzan en realizarlo, y hasta llegan a cierto momento casi exigir que sea respuesta con el resultado ya hecho (como el que acabas de dar) siento que el chiste en encaminarlos, enseñarles, pero no hacerles el trabajo... (Dar ideas, algoritmo, pero no ya hecho todo, como fue que puse la idea e hice notar el error, pero por ello no lo realice... )

    En lo personal, es mi forma de pensar...

    Saludos y gracias por el apoyo...

    Stryfe™
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In