Foros del Web » Programando para Internet » PHP »

Duda con muestra de datos

Estas en el tema de Duda con muestra de datos en el foro de PHP en Foros del Web. Buenas a todos: mi duda es la siguiente supongamos que contamos con este codigo: Código: <html> <body> <?php include"conexion.php"; $result = mysql_query("SELECT codigo_empleado, email FROM ...
  #1 (permalink)  
Antiguo 23/06/2007, 09:13
 
Fecha de Ingreso: noviembre-2004
Mensajes: 37
Antigüedad: 19 años, 4 meses
Puntos: 0
Duda con muestra de datos

Buenas a todos: mi duda es la siguiente supongamos que contamos con este codigo:

Código:
<html>

<body>

<?php

include"conexion.php";

$result = mysql_query("SELECT codigo_empleado, email FROM agenda", $link);

echo "<table border = '1'> \n";

echo "<tr> \n";

echo "<td><b>Codigo Empleado</b></td> \n";

echo "<td><b>E-Mail</b></td> \n";

echo "</tr> \n";

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

echo "<tr> \n";

echo "<td>$row[0]</td> \n";

echo "<td>$row[1]</td> \n";

echo "</tr> \n";

}

echo "</table> \n";

?>

</body>

</html>
en mi base de datos tengo mas de un mail por codigo_empleado, estando asi almacenado:

codigo_empleado mail
_____________________________
0001 [email protected]
_____________________________
0001 [email protected]
_____________________________
0002 [email protected]
_____________________________

ahora mi duda es: ¿como podria arreglar este codigo para que me muestre los datos asi:

codigo_empleado mail
____________________________
0001 [email protected]
[email protected]
_____________________________
0002 [email protected]
_______________________________




Desde ya muchas gracias... espero de vuestra ayuda

saludos
  #2 (permalink)  
Antiguo 23/06/2007, 09:29
 
Fecha de Ingreso: febrero-2004
Ubicación: Resistencia - Argentina
Mensajes: 299
Antigüedad: 20 años, 1 mes
Puntos: 0
Re: Duda con muestra de datos

En la cosulta ordena por codigo_empleado: $result = mysql_query("SELECT codigo_empleado, email FROM agenda ORDER BY codigo_empleado", $link);
Despues en el bucle hace lo siguiente:

$codigoAnterior=0;

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

echo "<tr> \n";
if($codigoAnterior!=$row[0]){
echo "<td>$row[0]</td> \n";
}
echo "<td>$row[1]</td> \n";

echo "</tr> \n";

$codigoAnterior=$row[0];

}

Espero te sirva
  #3 (permalink)  
Antiguo 23/06/2007, 09:48
 
Fecha de Ingreso: noviembre-2004
Mensajes: 37
Antigüedad: 19 años, 4 meses
Puntos: 0
Re: Duda con muestra de datos

Lo probe.. no me repite los codigos (solo muestra uno cada vez) pero el segundo mail aparece en la columna de codigo de empleado y si lo muevo hacia la de mail aparece el codigo de empleado a su lado cosa que necesito q no aparezca mas de una vez :(
  #4 (permalink)  
Antiguo 23/06/2007, 09:57
 
Fecha de Ingreso: junio-2007
Ubicación: Mérida, Yucatán, México
Mensajes: 94
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Duda con muestra de datos

Una pregunta... ¿En un sólo campo?... el $row[1] tienes varias direcciones de e-mail?

Si es así puedes debes tenerlas separadas, no sé tal vez por un punto y coma, o una coma... Si es así puedes

<?php
// Supongamos que $mails va a tener el contenido de $row[1]
$mails = "[email protected],[email protected]";
$mail = explode(",", $mails);

for ($i=0;$i<count($mail);$i++)
{
echo "Correo #$i: " . $mail[$i] . "<br />";
}
?>


Espero te sirva...
  #5 (permalink)  
Antiguo 23/06/2007, 10:12
 
Fecha de Ingreso: noviembre-2004
Mensajes: 37
Antigüedad: 19 años, 4 meses
Puntos: 0
Re: Duda con muestra de datos

cada codigo tiene asociado mas de un mail

estando guardado asi en la base:

codigo email
_______________________________
001 [email protected]
________________________________
001 [email protected]
_________________________________
002 [email protected]
_________________________________



entonces la idea es poder mostrarlos asi:

codigo email
__________________________________
001 [email protected]
[email protected]
__________________________________
002 [email protected]
__________________________________


siendo codigo y mail dos columnas distintas a pesar de q no se nota mucho en la explicacion :P
  #6 (permalink)  
Antiguo 23/06/2007, 11:04
 
Fecha de Ingreso: junio-2007
Ubicación: Mérida, Yucatán, México
Mensajes: 94
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: Duda con muestra de datos

Mira, si tú $row[0]... donde esta el código, es un campo tipo númerico entonces será algo asi...

$codigoNumerico = true;

//Creamos una matriz
$codigos = array();

//Luego obtenemos los datos de la base de datos
while ($row = mysql_fetch_row($result)){
//Aqui verifico si el tipo de campo es numerico... recuerda que puedes quitar esto... sólo deja la lina que te sirva...
if ($codigoNumerico) {
$codigos[intval($row[0])] .= $row[1] . ", ";
}else{
$codigos[$row[0]] .= $row[1] . ", ";
}
}
//Lo que hicimes fue, unir todos los mails que correspondan a ese campo separados por una coma...
//Luego hago un bucle para imprimir los datos

//En esta parte imprimo cuantos codigos tengo y sus respectivos emails...
foreach($codigos as $codigo=>$mails){
//$codigo identifica a cadauno de los codigos, sean númericos o de texto
echo $codigo;
//$mails son todos los mails, separados de una coma...
echo $mails;
//Podemos convertirlos enuna matriz para poder trabajar con ellos si asi lo queremos
$todoslosemails = explode(",", $mails);
/*
Por ejempl $todoslosemails[0] este es el primer mail de cada codigo
*/
}

Creo que con esto si lo entendies te puede ayudar...

Otra cosa, te decia que estaba mal eso que haces por que estas duplicando registros en tu tabla, y eso es una practica que no debes hacer...
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 14:45.