PHP - ayuda con este código, me da error pero no lo encuento

 
Vista:

ayuda con este código, me da error pero no lo encuento

Publicado por Francisco Pi (5 intervenciones) el 11/08/2017 13:47:53
Estoy trantando de generar un codigo que envie un email con las tareas pendientes entre un rango de fechas, he conseguido que funcione pero enviando una mail por tarea en lugar de agruparlas. Me tiene loco, alguna idea?, Hay 2 tablas, una con los datos de los usuarios y otra con las tareas de ese usuario.

creo que el error esta en el bucle de la matriz de tareas que esta dentro del array de descripcion del email.


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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
 
<body>
 
<?php
 
	include("conexion.php");
 
	$resultado=$base->query("SELECT * FROM login");
 
	$registro=$resultado->fetchAll(PDO::FETCH_OBJ);
 
	foreach($registro as $usuario):
 
?>
 
<?php
 
	$mail=$usuario->email;
	$nombre=$usuario->nombre;
	$user=$usuario->id;
	$hoy = date("Y-m-d");
	$limite= date("Y-m-d", strtotime("$hoy + 30 days"));
	$sql=("SELECT * FROM tareas WHERE idusuario=$user");
 
if ($resultado = $base->query($sql)) {
 
 
  if ($resultado->fetchColumn() > 0) {
 
 
         $sql = "SELECT materia, tarea, DATE_FORMAT(fechaentrega, '%d-%m-%Y') AS fechaentrega FROM tareas WHERE idusuario=$user AND tareas.fechaentrega >='$hoy' AND tareas.fechaentrega <='$limite'";
 
  		$resultado2=$base->query($sql);
 
$emailuser = "$mail";
 
$cabecera  = "MIME-Version: 1.0"."\r\n";
$cabecera .= "Content-type: text/html; charset=UTF-8"."\r\n";
 
$messageuser="Studeherlper, Aviso de tarea pendiente";
 
$desc =
"<html>
<head><title>Correo aviso tareas pendientes</title></head>
<body>
<center><img src='http://studehelper.x10.bz/imagenes/logo.jpg'></center><br><br>

<p>Hola <b>" . $nombre ."</b></p>
<p><br>Tienes la siguiente tarea pendiente, <b>revisala y entregala</b> en la fecha indicada:<br><br>"
 
foreach ($resultado2 as $fila):
 
"<table border=1 style='width:600px;'>
<tr><th style='background:brown;color:white;width:200px'><center>MATERIA</center></th><th style='background:brown;color:white;width:200px'><center>TAREA</center></th><th style='background:brown;color:white;width:200px'><center>FECHA ENTREGA</center></th></tr>
<tr><td style='color:brown;widht:200px'><center><b>" . $fila['materia'] ."</b></center></td><td style='color:brown;widht:200px'><center><b>" . $fila['tarea'] ."</b></center></td><td style='color:brown;widht:200px'><center><b></b>" .$fila['fechaentrega'] . "</b></center></td></tr>

</table>"
"<br><br><br>
<p><a href='http://studehelper.x10.bz'>StudeHelper</a>, tu herramienta de ayuda al estudio.</p>
<p>Este es un mensaje automático, no responda a el.</p>
</body>
</html>";
 
mail($emailuser, $messageuser, $desc, $cabecera);
 
endforeach ;
 
 
?>
 
 
 
 
 
<?php endforeach;?>
</body>
</html>
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
Imágen de perfil de Alejandro

ayuda con este código, me da error pero no lo encuento

Publicado por Alejandro (54 intervenciones) el 11/08/2017 15:38:05
Hola Francisco,

Que tipo de error te dará?

Te recomiendo que muestres el código del error, por que es imposible ayudarte sin eso.

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

ayuda con este código, me da error pero no lo encuento

Publicado por Carlos (6 intervenciones) el 11/08/2017 18:24:17
Te recomiendo que también muestres la información de las tablas de la base de datos para poder ayudarte con la consulta.
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

ayuda con este código, me da error pero no lo encuento

Publicado por Francisco Pineda (5 intervenciones) el 11/08/2017 18:41:00
no da error concreto de php ni msqyl, simplemte el error es no funciona error 500.

Las tablas son login con contenido de ususarios, id, email, password, apellidos, nombre, foto, tipousuario y otra es tareas con un campo idusuario relacionado con el id de login y campos tarea materia y fechaentrega.

creo que el error esta en el segundo bucle foreach, esta dentro de un array y no si es correcto


lo que quiero hacer es un envio de mail a los usuarios de la tabla login con el contenido de la tabla tareas .
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
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

ayuda con este código, me da error pero no lo encuento

Publicado por xve (6935 intervenciones) el 11/08/2017 21:47:41
Si te da un error 500, tienes que revisar el log del servidor web para ver que error produce. Ahí veras exactamente que problema hay!!
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

ayuda con este código, me da error pero no lo encuento

Publicado por Francisco Pineda (5 intervenciones) el 11/08/2017 21:48:39
gracias compruebo el error a ver que dice
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

ayuda con este código, me da error pero no lo encuento

Publicado por Francisco Pineda (5 intervenciones) el 11/08/2017 23:20:12
No hay informacion específica del error. Simplemente dice que la página no funciona. He modificado la estrutura de la página y ahora si funciona, envia correos, pero en lugar de agrupar las materias envia un correo para cada materia y tarea.

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
 
<body>
 
<?php
 // seleccionamos los usuarios
	include("conexion.php");
 
	$resultado=$base->query("SELECT * FROM login");
 
	$registro=$resultado->fetchAll(PDO::FETCH_OBJ);
 
	foreach($registro as $usuario):
 
?>
 
<?php
 //asignamos variables a los resultados
	$mail=$usuario->email;
	$nombre=$usuario->nombre;
	$user=$usuario->id;
	$hoy = date("Y-m-d");
	$limite= date("Y-m-d", strtotime("$hoy + 30 days"));
//seleccionamos tareas activas de cada usuario	
        $sql=("SELECT * FROM tareas WHERE idusuario=$user");
//comprobamos que hay usuarios con tareas
	if ($resultado = $base->query($sql)) {
 
 
  		if ($resultado->fetchColumn() > 0) {
 
 //creamos consulta para ver resultados por usuario
    	$sql = "SELECT materia, tarea, DATE_FORMAT(fechaentrega, '%d-%m-%Y') AS fechaentrega FROM tareas WHERE idusuario=$user AND tareas.fechaentrega >='$hoy' AND tareas.fechaentrega <='$limite'";
 
  		$resultado2=$base->query($sql);
 // empezamos a crear el mail (creo que aqui se genera el error de enviar 1 correo por tarea activa) como construyo este bucle para que reunifique las tareas??????
 
                        foreach ($resultado2 as $fila):
 
				$emailuser = "$mail";
				$cabecera = "MIME-Version: 1.0"."\r\n";
				$cabecera .= "Content-type: text/html; charset=UTF-8"."\r\n";
				$messageuser="Studeherlper, Aviso de tarea pendiente";
				$desc =
					"<html>
					<head><title>Correo aviso tareas pendientes</title></head>
					<body>
					<center><img src='http://studehelper.x10.bz/imagenes/logo.jpg'></center><br><br>
					<p>Hola <b>" . $nombre . "</b></p>
					<p><br>Tienes la siguiente tarea pendiente, <b>revisala y entregala</b> en la fecha indicada:<br><br>
					<table border=1 style='width:600px;'>
					<tr><th style='background:brown;color:white;width:150px'><center>MATERIA</center></th><th style='background:brown;color:white;width:150px'><center>TAREA</center></th><th style='background:brown;color:white;width:1500px'><center>FECHA ENTREGA</center></th></tr>
					<tr><td style='color:brown;widht:150px'><center><b>" . $fila['materia'] ."</b></center></td><td style='color:brown;widht:150px'><center><b>" . $fila['tarea'] ."</b></center></td><td style='color:brown;widht:150px'><center><b></b>" .$fila['fechaentrega'] . "</b></center></td></tr>
					</table>
					<br><br><br>
					<p><a href='http://studehelper.x10.bz'>StudeHelper</a>, tu herramienta de ayuda al estudio.</p>
					<p>Este es un mensaje automático, no responda a el.</p>
					</body>
					</html>";
 
				mail($emailuser, $messageuser, $desc, $cabecera);
 
			endforeach ;
 
  		}
 
	}
 
 	endforeach;
 
	header("location:administracion.php");
 
?>
</body>
</html>
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

ayuda con este código, me da error pero no lo encuento

Publicado por Francisco Pineda (5 intervenciones) el 12/08/2017 11:56:32
Arreglado, el error estaba en la posicion del bucle .... os envio el codigo por si alguien lo quiere reutilizar.

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
 
<body>
 
<?php
 
	include("conexion.php");
 
	$resultado=$base->query("SELECT * FROM login");
 
	$registro=$resultado->fetchAll(PDO::FETCH_OBJ);
 
	foreach($registro as $usuario):
 
 
	$mail=$usuario->email;
	$nombre=$usuario->nombre;
 
	$emailuser = "$mail";
	$cabecera = "MIME-Version: 1.0"."\r\n";
	$cabecera .= "Content-type: text/html; charset=UTF-8"."\r\n";
	$messageuser="Studeherlper, Aviso de tarea pendiente";
	$desc =
		"<html>
		<head><title>Correo aviso tareas pendientes</title></head>
		<body>
		<center><img src='http://studehelper.x10.bz/imagenes/logo.jpg'></center><br><br>
		<p>Hola <b>" . $nombre . "</b></p>
		<p><br>Tienes la(s) siguiente(s) tarea(s) pendiente(s) para los proximos 3 dias, <b>revisala(s) y entregala(s)</b> en la(s) fecha(s) indicada(s):<br><br>
		<table border=1 style='width:450px;'>
		<tr><th style='background:brown;color:white;width:150px'><center>MATERIA</center></th><th style='background:brown;color:white;width:150px'><center>TAREA</center></th><th style='background:brown;color:white;width:150px'><center>FECHA ENTREGA</center></th></tr>";
?>
 
<?php
 
	$user=$usuario->id;
	$hoy = date("Y-m-d");
	$limite= date("Y-m-d", strtotime("$hoy + 3 days"));
	$sql=("SELECT * FROM tareas WHERE idusuario=$user");
 
	if ($resultado = $base->query($sql)) {
 
 
		if ($resultado->fetchColumn() > 0) {
 
			$sql = "SELECT materia, tarea, DATE_FORMAT(fechaentrega, '%d-%m-%Y') AS fechaentrega FROM tareas WHERE idusuario=$user AND tareas.fechaentrega >='$hoy' AND tareas.fechaentrega <='$limite'";
 
			$resultado2=$base->query($sql);
 
			foreach ($resultado2 as $fila):
 
				$desc .=
					"<tr><td style='color:brown;widht:150px'><center><b>" . $fila['materia'] ."</b></center></td><td style='color:brown;widht:150px'><center><b>" . $fila['tarea'] ."</b></center></td><td style='color:brown;widht:150px'><center><b></b>" .$fila['fechaentrega'] . "</b></center></td></tr>";
 
			endforeach;
 
		}
 
	}
	$desc .=
		"</table>
		<br><br><br>
		<p><a href='http://studehelper.x10.bz'>StudeHelper</a>, tu herramienta de ayuda al estudio.</p>
		<p>Este es un mensaje automático, no responda a el.</p>
		</body>
		</html>";
 
	mail($emailuser, $messageuser, $desc, $cabecera);
 
	endforeach;
 
	header("location:administracion.php");
 
?>
</body>
</html>
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