Foros del Web » Programando para Internet » PHP »

php no hace la consulta

Estas en el tema de php no hace la consulta en el foro de PHP en Foros del Web. Hola AMigos de veras apreciaria mucho su ayuda. tengo un progrma en php que procesa correos cuando recibe un correo o mensaje lo guarda en ...
  #1 (permalink)  
Antiguo 23/03/2010, 16:17
 
Fecha de Ingreso: marzo-2010
Mensajes: 140
Antigüedad: 14 años, 1 mes
Puntos: 0
php no hace la consulta

Hola AMigos de veras apreciaria mucho su ayuda.

tengo un progrma en php que procesa correos cuando recibe un correo o mensaje lo guarda en una base de datos donde una tabla tarea lo recibe con la fecha de cuando llego y la fecha cuando debe ser enviado, el script siguiente debe de tomar los mensajes de esa tabla y guardarlos en otra que se llama mensaje_por_enviar de donde otro script lo toma y lo envia y lo borra de mensaje por enviar.

El problema no se porque no consulta y despues actualiza mensaje por enviar, aparentemente todo esta bien.

el script lo tengo que correr con un cron pero no esta haciendo su tarea asi que
para probarlo lo corro desde shell, y me he dado cuenta que no hace la tarea que debe hacer.

Por favor ayudenme a encontrar el problema.

saludos........................


#!/opt/lampp/bin/php
<?php
include('./includes/config.inc.php');
include('encabezado.php');
include('pie.php');



function verificar_pendiente($correo_empresa,$texto_encabez ado,$texto_pie,$now,$maximo){


echo "Inicio tareas propias.";
if (!maximo_tareas_siguientes($maximo)){
$consulta = "SELECT * FROM tarea, usuario WHERE (ADDTIME('$now', '0 00:30:00') >
tarea.fecha_notif) AND (usuario.iduser = tarea.iduser) AND (notificar='eventual') AND
(tarea.estado='pendiente')";
}
else{
$consulta = "SELECT * FROM tarea, usuario WHERE (ADDTIME('$now', '0 01:00:00') >
tarea.fecha_notif) AND (usuario.iduser = tarea.iduser) AND (notificar='eventual') AND
(tarea.estado='pendiente')";

}
$query = mysql_query($consulta);

while($row = @mysql_fetch_assoc($query)){
$msj = $texto_encabezado.$row["tarea"]."\n".$texto_pie_sms;
$sql = "INSERT INTO mensaje_por_enviar(correo,msj,marc,hora) VALUES ('{$row['telefono']}','$msj','$correo_empresa','$now')";
mysql_query($sql);
if (! mysql_error() )
echo "Tarea enviada a {$row['telefono']}<br>";
else
echo "Error al intentar agregar el mensaje en la cola.<br>".mysql_error()."<br>";
$sql = "UPDATE tarea SET estado='realizado' WHERE idtarea=".$row['idtarea'];
mysql_query($sql);
if (! mysql_error() )
echo "Tarea {$row['idtarea']} configurada como realizada.\n";
else
echo "Error al intentar configurar como agregada la tarea {$row['idtarea']}.<br>".mysql_error()."<br>";
}




}
function maximo_tareas_siguientes($maximo){
$consulta_actual = "SELECT * FROM tarea, usuario WHERE (ADDTIME('$now', '0 00:30:00') >
tarea.fecha_notif) AND (usuario.iduser = tarea.iduser) AND (notificar='eventual') AND
(tarea.estado='pendiente')";

$res=mysql_query($consulta_actual);
$cantidad_actual=@mysql_num_rows($res);
$consulta_siguiente = "SELECT * FROM tarea, usuario WHERE (ADDTIME('$now', '0 01:00:00') >
tarea.fecha_notif) AND (usuario.iduser = tarea.iduser) AND (notificar='eventual') AND
(tarea.estado='pendiente')";
$res=mysql_query($consulta_siguiente);
$cantidad_hora=@mysql_num_rows($res);
$cantidad_siguiente=$cantidad_hora-$cantidad_actual;
echo "La cantidad actual es:$cantidad_actual ";

echo "La cantidad siguiente es:$cantidad_siguiente ";
if ($cantidad_siguiente<=$maximo)
return 0;
else
return 1;

}




$veces = date("s");
$time_to_processor = 59;
while (1)
{ $minuto_actual = date("s");
if ($minuto_actual<$veces)
$veces=$minuto_actual;
if (($minuto_actual - $veces)== $time_to_processor) {

$dif= $hora_local - date('0')/100;
$new_time = strtotime($dif." hours");
$now = date("Y-m-d H:i:s", $new_time);
//$now = date("Y-m-d H:i:s");

verificar_pendiente($correo_empresa,$texto_encabez ado,$texto_pie,$now,$maximo);

$veces=$minuto_actual;

//print "$now";

}





}


?>
  #2 (permalink)  
Antiguo 23/03/2010, 16:27
N4X
 
Fecha de Ingreso: enero-2010
Mensajes: 23
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: php no hace la consulta

todo el code a partir de:

function verificar_pendiente

va dentro de esta función??


porque veo que abres pero no veo que lo cierres hasta el final..

de ser así tampoco veo donde llamas a la función....

otro detalle

al llamar al encabezado y al pie uno seguido de otro, no te estas comiendo el cuerpo?
no conozco el contenido de ambos php pero la idea que das en el script sería erronea
  #3 (permalink)  
Antiguo 23/03/2010, 16:39
 
Fecha de Ingreso: marzo-2010
Mensajes: 140
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: php no hace la consulta

No creo aqui te muestro donde empieza y donde termina verificar pendiente

function
verificar_pendiente($correo_empresa,$texto_encabez ado,$texto_pie,$now,$maximo)

{//empieza verificar_pendiente


echo "Inicio tareas propias.";
if (!maximo_tareas_siguientes($maximo)){
$consulta = "SELECT * FROM tarea, usuario WHERE (ADDTIME('$now', '0 00:30:00') >
tarea.fecha_notif) AND (usuario.iduser = tarea.iduser) AND (notificar='eventual') AND
(tarea.estado='pendiente')";
}
else{
$consulta = "SELECT * FROM tarea, usuario WHERE (ADDTIME('$now', '0 01:00:00') >
tarea.fecha_notif) AND (usuario.iduser = tarea.iduser) AND (notificar='eventual') AND
(tarea.estado='pendiente')";

}
$query = mysql_query($consulta);

while($row = @mysql_fetch_assoc($query)){
$msj = $texto_encabezado.$row["tarea"]."\n".$texto_pie_sms;
$sql = "INSERT INTO mensaje_por_enviar(correo,msj,marc,hora) VALUES ('{$row['telefono']}','$msj','$correo_empresa','$now')";
mysql_query($sql);
if (! mysql_error() )
echo "Tarea enviada a {$row['telefono']}<br>";
else
echo "Error al intentar agregar el mensaje en la cola.<br>".mysql_error()."<br>";
$sql = "UPDATE tarea SET estado='realizado' WHERE idtarea=".$row['idtarea'];
mysql_query($sql);
if (! mysql_error() )
echo "Tarea {$row['idtarea']} configurada como realizada.\n";
else
echo "Error al intentar configurar como agregada la tarea {$row['idtarea']}.<br>".mysql_error()."<br>";
}




}//termina verificar_pendiente

Etiquetas: Ninguno
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 21:18.