PHP - El más difícil aún, tratar datos procedentes de mysql para que aparezca en la web

   
Vista:

El más difícil aún, tratar datos procedentes de mysql para que aparezca en la web

Publicado por interchangeoflanguagesiamspanish (2 intervenciones) el 06/09/2014 15:39:05
Hola a todos/as a ver si me orientais un poco, en relación a lo siguiente:

- He programado este código que me permite extraer los datos de una tabla de mysql, y mostrarlos en mi web (lo adjunto más abajo);

mi duda ahora es: si tengo un campo cualquiera por ejemplo llamese curso (puede tomar como valores: primero, segundo, tercero, cuarto, quinto) y quiero que al mostrar mi tabla, las celdas relativas a curso en las que aparezca un determinado valor, por ejemplo tercero, se sombreen de un color concreto;


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
 
//conectar al servidor
 
$connect = mysql_connect("localhost", "root", "") ;
 
if (!$connect) {
die ("Can not connect: " . mysql_error () ) ;
}
 
//conectar a la base de datos
 
mysql_select_db("modelobdclase", $connect) ;
 
$sql = "SELECT * FROM datosalumnado";
 
//query la base de datos
$myData = mysql_query($sql, $connect) ;
echo  "<table border=1>

<tr>
<th> id_alumnado </th>
<th> nombre </th>
<th> apellido1 </th>
<th> apellido2 </th>
<th> curso </th>
<th> fechadenacimiento </th>
<th> e-mail </th>
<th> direccion </th>
</tr>";
while ($record = mysql_fetch_array ($myData)) {
echo "<tr>";
echo "<td>" . $record ['id_alumnado'] . "</td>";
echo "<td>" . $record ['nombre'] . "</td>";
echo "<td>" . $record ['apellido1'] . "</td>";
echo "<td>" . $record ['apellido2'] . "</td>";
echo "<td>" . $record ['curso'] . "</td>";
echo "<td>" . $record ['fechanacimiento'] . "</td>";
echo "<td>" . $record ['e-mail'] . "</td>";
echo "<td>" . $record ['direccion'] . "</td>";
}
echo "</table>" ;
 
mysql_close($connect) ;
 
//fech de reusultados y convertirlos a través de un array
 
?>
 
</body>
</html>


Esa modificación nunca la he hecho y estoy un poco perdido, a ver si me orientais, no sé si hacerle con un if, y donde ubicarla; por favor ser descriptivos.

:-(
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

El más difícil aún, tratar datos procedentes de mysql para que aparezca en la web

Publicado por Gonzalo (338 intervenciones) el 06/09/2014 17:04:00
para el color se usa (si mal no me acuerdo) <td bgcolor="color">Dato</td> aquí lo que debes investigar es: que código de color es el que quieres para cada curso, busca en w3schools.com, ahí tienen una pagina dinámica con todos los colores, vas a ver algo asi como #FFFFF, ese es un color y lo usarías así $BgColor="#FFFFF";
bien, en tu caso lo que necesitas un switch para elegir el color dependiendo del curso, lo que se me ocurre es que la elección del color sea justo después de leer el registro y después mostrar el tr /tr ya con el color elegido pero si te sugieren una mejor idea seria excelente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
while ($record = mysql_fetch_array ($myData))
{
switch($record["curso"])
{
case 'primero':
$BgColor="red";break;
case 'segundo':
$BgColor="blue";break;
case 'tercero':
$GbColor="green";break;
//y los siguientes grados con los colores que quieras.
}
// ya elegido el color muestras el renglon con la informacion
 
echo "<tr>";
echo "<td>" . $record ['id_alumnado'] . "</td>";
echo "<td>" . $record ['nombre'] . "</td>";
echo "<td>" . $record ['apellido1'] . "</td>";
echo "<td>" . $record ['apellido2'] . "</td>";
echo '<td bgcolor="'.$BgColor.'">' . $record ['curso'] . "</td>";
echo "<td>" . $record ['fechanacimiento'] . "</td>";
echo "<td>" . $record ['e-mail'] . "</td>";
echo "<td>" . $record ['direccion'] . "</td>";
echo "</tr>"; // no olvides cerrar el tr
}

revisa bien el td del curso, notaras un cambio en la orden echo

aqui el problema es que la orden correcta es

<td bgcolor="#FFFFF">, las " al inicio y al final del codigo del color son necesarias, entonces para que se muestren en php lo que yo hago es poner la cadena de texto entre ' y las " dentro de los ', si encuentras otra forma de escribir esa linea en particular de una forma mas clara entonces adelante.

espero sea de ayuda. suerte, salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

El más difícil aún, tratar datos procedentes de mysql para que aparezca en la web

Publicado por interchangeoflanguagesiamspanish (2 intervenciones) el 06/09/2014 20:58:56
Sí pero ponerlo con el swith tiene el problema que solo me valdria para campos que toman un valor dentro de un rango, el caso es que quiero que me sirva tb para aquellas características que pueden tomar cualquier valor, es decir, por ejemplo que hubiera un campo que fuera ciudad de nacimiento, y quisiera que se me resaltasen todos los de sevilla por ejemplo, sin tener que hacer el swith porque las posibilidades serían inmensas.

Por eso no lo hice con el swith, en este caso como crees que sería???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

El más difícil aún, tratar datos procedentes de mysql para que aparezca en la web

Publicado por Gonzalo (338 intervenciones) el 06/09/2014 23:13:30
en alguna parte vas a tener que definir que color usar para cada valor que quieras resaltar si es que vas a usar un color para cada ciudad, en este caso pienso que seria mejor crear una tabla con todas las ciudades y definir un color para cada una, usas un inner join para combinar la base de datos con las ciudades y listo, tomas el color de la base de datos en lugar de usar un switch.

pero si solo quieres resaltar los de Sevilla (o cualquier otra ciudad, 1 a la vez) lo que yo haría seria agregar un combo con la lista de ciudades y elegir el que necesito resaltar, así cuando detecte que el renglón que va a escribir coincide con el valor del combo entonces lo pongo en rojo, o en verde o en el color que quieras.

suerte, salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar