La cuestion es la sigueinte estoy realizando en mi pagina educativa (educacionytecnologia.com.ve) el apartado de profesores.
En este apartado le doy la capacidad al docente de enviarle correos a los alumnos que el mismo seleccione, ahora cada alumno al suscribirse en la pagina selecciona las materias que desea consultar, por otro lado la institucion le coloca al profesor las materias que el da dentro de la institucion, cabe destacar que varios profesores pueden estar asociados a varias instituciones, y varios alumnos a varias instituciones, ok prosigo.
Al momento de hacer la seleccion de los alumnos a los cuales enviarles el correo me da un error, salen nombres duplicados, no porque esten varias veces dentro de la base de datos, si no que puede que el query que realizo este haciendo varios ciclos trayendo valores duplicados se los pongo a continuacion:
Código PHP:
<?php
session_start();
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Envio de Correos</title>
<style type="text/css">
<!--
.Estilo1 {color: #FFFFFF}
.Estilo2 {color: #FFFFFF; font-weight: bold; }
.Estilo3 {font-size: 18px}
-->
</style>
</head>
<body bgcolor="#660000">
<p align="center" class="Estilo1"><strong>Bienvenido Profesor.</strong></p>
<p align="center" class="Estilo1"><strong>Recuerde colocar correctamente los datos a fin de evitar conflictos.</strong></p>
<p align="center" class="Estilo2 Estilo3">Formulario de envio de Correo.</p>
<p align="center" class="Estilo2 Estilo3">Por Favor seleccione a los usuarios que desee enviar el correo</p>
<p align="center" class="Estilo2 Estilo3">_____________</p>
<table width="501" border="2" align="center">
<tr>
<tr>
<p align="center" class="Estilo1"><strong>Seleccione los usuarios a los que desee enviar el correo con la informacion </strong><strong></strong></p>
<tr>
<br>
<p align="center" class="Estilo2 Estilo3">Solicitudes de Alumnos</p>
<th><span class="Estilo1">Nombre del Alumno</span></th>
<th><span class="Estilo1">Cedula</span></th>
<th><span class="Estilo1">Institucion a la que pertenece</span></th>
<th><span class="Estilo1">Seleccione el alumno</span></th>
<?PHP
$db= mysql_connect ("", "","");
if (!$db)
{
echo "Error al conectar con la base de datos";
exit;
}
// Seleccionar Usuarios!!!!!!!!!!
$usuario= $_SESSION['usuario'];
//Verificar el usuario que esta logeado.........
//echo "$usuario";
mysql_select_db ("eductecn_sistema");
$consulta5= "SELECT * FROM profesores where usuariop='$usuario'";
$resultado5= mysql_query($consulta5);
while ($fila5= mysql_fetch_array($resultado5))
{
$rif= $fila5[1];
}
//verificar el usuario en la tabla materiasx profesor. Esta tabla contiene las materias asociadas al profesor, esta accion la hace la institucion a la que pertenezcan.
mysql_select_db ("eductecn_sistema");
$consulta1= "SELECT * FROM materiasxprofesor where usuariop='$usuario'";
$resultado1= mysql_query($consulta1);
while ($fila1= mysql_fetch_array($resultado1))
{
// De la consulta anterior traigo el codigo de la materia asociado al profesor logeado y lo comparo con la tabla de materiasxalumno en donde estan las materias seleccionadas por los alumnos al inscribirse
mysql_select_db ("eductecn_sistema");
$consulta2= "SELECT * FROM materiasxalumno where cod_materia='$fila1[1]'";
$resultado2= mysql_query($consulta2);
while ($fila2= mysql_fetch_array($resultado2))
{
//De la consulta anterior traigo el usuario asociado a las materias seleccionadas, y lo comparo con la tabla usuarioa para traer sus datos personales todo esto se realiza para verificar la direccion de correo electronico que es lo que se encuentra mas abajo en el checkbox.
mysql_select_db ("eductecn_sistema");
$consulta3= "SELECT Distinct usuarioa FROM alumnos where usuarioa= '$fila2[2]'";
$resultado3= mysql_query($consulta3);
$colu= mysql_num_fields($resultado3);
$filas= mysql_num_rows($resultado3);
//consulta para los valores
while ($fila3= mysql_fetch_array($resultado3))
{
//echo "$fila3[4]";
echo "<form name='f1' action='correoenviado.php' method='POST'>";
for($i=$filas;$i<=$filas;$i++)
{
echo"<tr>";
for($x=0;$x<=3;$x++)
{
echo "<td> <font color='white'> $fila3[$x]";
if ($x==3)
{
echo"<label>";
//aqui coloco la direccion de correo electronico es a lo que corresponde el $fila3[4] que se encuentra debajo. ahora al momento de yo traer esa consulta por ejemplo un alumno me sale dos veces en la tabla, seguramente es un problema con los while que me recomiendan hacer? saludos :D.
echo"<input type='checkbox' name='correo[]' value='$fila3[4]'>";
echo"</label>";
}
echo"</td>";
}
echo "</tr>";
}
}
}
}
?>
</td>
</tr>
</table>
<div align="center"></div>
<table border="1" align="center" bgcolor="#660000">
<tr>
<td bordercolor="#FFFFFF"><span class="Estilo1"><strong>Ingrese el Asunto del Correo que desea enviar.</strong></span></td>
<td><input type="text" name="asunto"></td>
</tr>
<tr>
<td bordercolor="#FFFFFF"><span class="Estilo1"><strong>Aqui puede colocar el mensaje del correo que desea enviar.</strong></span></td>
<td><label>
<textarea name="cuerpo" id="textarea" cols="45" rows="5"></textarea>
</label></td>
</tr>
<tr>
<td bordercolor="#FFFFFF"><input type="reset" name="borrar" id="button" value="Borrar Contenido"></td>
<td><input type="submit" name="registrar" id="button2" value="Enviar"></td>
</tr>
</table>
</form>
<p align="left" class="Estilo2"> </p>
</body>
</html>