Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Aún más dificil, tratamiento de datos procedentes de mysql

Estas en el tema de Aún más dificil, tratamiento de datos procedentes de mysql en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 06/09/2014, 07:13
 
Fecha de Ingreso: septiembre-2013
Mensajes: 76
Antigüedad: 10 años, 7 meses
Puntos: 0
Aún más dificil, tratamiento de datos procedentes de mysql

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;




Código PHP:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sin título</title>
</head>


<body>


<?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. 

:-(
  #2 (permalink)  
Antiguo 06/09/2014, 07:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Aún más dificil, tratamiento de datos procedentes de mysql

Cita:
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.
¿Entonces no conoces las estructuras de control ni el flujo de tu script?

Para agregar lo que buscas es simple, efectivamente necesitas un if() para comparar el valor y asignar el color.

El problema, es que si lo haces dentro del while() estarás haciendo una porquería y lo mejor es encapsular dicha lógica en una función aparte:

Código PHP:
Ver original
  1. function dame_color($valor) {
  2.   if ($valor == 'alguno') return 'red';
  3.   // etc.
  4. }

Entonces, en tu while() sólo debes prefijar el color así:
Código PHP:
Ver original
  1. while (/* ... */) {
  2.   $color = dame_color($row->alguna_columna);
  3.  
  4.   echo "<td bgcolor=$color>";
  5.  
  6.   // etc.
  7. }
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/09/2014, 09:45
 
Fecha de Ingreso: septiembre-2013
Mensajes: 76
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Aún más dificil, tratamiento de datos procedentes de mysql

Hi, he estado un rato dándole vueltas a lo que me has dicho y he intentado diversas alternativas pero no me sale

Entendí que aunque no lo habías puesto debía empezar declarando la variable valor y a partir de ahí hacer el desarrollo, pero tengo dudas en algunos aspectos al ejecutarla, me queda esto (entre etiquetas de negrita pongo donde tengo más dudas [B]:



Código PHP:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sin título</title>
</head>


<body>


<?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>"

[
B]
$valor"primero"; [/B]
        function 
dame_color($valor) {
      [
B]if ($valor == 'primero') return 'red';
      else 
' ';
    }[/
B]


while (
$record mysql_fetch_array ($myData)) {
$color dame_color($row->[B'curso' [/B]);

[
B]echo "<td bgcolor=$color>";[/B]  //¿es adecuado en está posición del código??
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>

Última edición por jesus_spanishteacher; 06/09/2014 a las 09:47 Razón: aclaración
  #4 (permalink)  
Antiguo 06/09/2014, 22:36
Avatar de websensemx  
Fecha de Ingreso: febrero-2014
Mensajes: 29
Antigüedad: 10 años, 2 meses
Puntos: 4
Respuesta: Aún más dificil, tratamiento de datos procedentes de mysql

Debes estudiar un poco la sintaxis HTML. El formato adecuado es:

while ($record = mysql_fetch_array ($myData)) {
$color = dame_color($row-> 'curso' );

echo "<tr bgcolor='$color'>";

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></tr>";
}
echo "</table>" ;
  #5 (permalink)  
Antiguo 07/09/2014, 02:27
 
Fecha de Ingreso: septiembre-2013
Mensajes: 76
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Aún más dificil, tratamiento de datos procedentes de mysql

Bueno ya he localizado el erro tras buscar varias alternativas, estaba en el while y en la difinición de la variable me quedaría esto:

while ($record = mysql_fetch_array ($myData)) {
$color = ($record ['curso'] == 'primero') ? "style='background-color:#f00;'" : ''; y a continuación introduzco el echo para mostrar la tabla.

Gracias a todos por vuestro interés, luego propondré un reto más díficil!

Etiquetas: dificil, html, mysql, select, sql, tabla, tratamiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:16.