Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/05/2005, 17:49
Avatar de jpinedo
jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
No he probado esto... pero es más o menos a lo que me refiero.
Lo que he hecho primero es calcular todas las variables comunesa todas las páginas y propagarlas en variables de sesión.
Código PHP:
<?php
session_start
();
// Identificador del mensaje en la base de datos
$id_msg 1;

// Cantidad de registros por bloque
$registros_por_bloque 20// O sea, se enviarán los mails de 20 en 20 

// Determinar el boque actual
if (empty($_GET['bloque'])){
    
$actual 1;
}else{
       
$actual $_GET['bloque'];
}

// Si es el primer bloque, calculamos todos los parámetros comunes.
if($actual == 1){
    
// Información sobre el mensaje que se quiere enviar
    
$sql_msg "SELECT * FROM mensajes WHERE id_msg = $id_msg";
    
$msg_result mysql_query($sql_msg) or die("Error en <b>$sql_msg</b> ::"mysql_error());
    if(
$msg_row mysql_fetch_assoc($msg_result)){
        
$_SESSION['msg_asunto'] = $msg_row['msg_asu'];
        
$_SESSION['msg_mensaje'] = $msg_row['msg_msg'];
        
$_SESSION['msg_headers'] = "From: ".$msg_row['msg_rnom']." <".$msg_row['msg_rdir'].">\nReply-To: ".$msg_row['msg_rres']."\nMIME-Version: 1.0\nContent-Type: text/plain";
    }else{
        die(
"No se hallaron registros para id_msg = $id_msg");
    }

    
// Cantidad de destinatarios activos
    
$sql_count "SELECT COUNT(*) FROM lista WHERE lis_act = 1";
    
$count_result mysql_query($_sql_count$link); //cuenta la cantidad de destinatarios
    
$total_registros mysql_result($_pagi_count_result0);
    
    
// Cantidad de "Páginas" o "Bloques"
    
$_SESSION['total_bloques'] = ceil($total_registros $registros_por_bloque);
}
// ------------------------------------------------

$inicial = ($actual-1) * $registros_por_bloque;
$sql "SELECT lis_dir, lis_act FROM lista WHERE lis_act = 1 LIMIT $inicial,$registros_por_bloque";
$result mysql_query($sql) or die("Error en <b>$sql</b> ::"mysql_error());
while(
$row mysql_fetch_assoc($result)){
    
$destinatario $row['lis_dir'];
    
mail($destinatario$_SESSION['msg_asunto'], $_SESSION['msg_mensaje'], $_SESSION['msg_headers']))
}

// ------------------------------------------------

$bloque_siguiente $bloque_actual 1;
if(
$bloque_siguiente $_SESSION['total_bloques']){
    
// Si hay más bloques, pasamos al siguiente.
    
header("Location : ".$_SERVER['PHP_SELF']."?bloque=$bloque_siguiente");
}else{
    
// Si no hay más bloques, redireccionamos a otra parte.
    
header("Location : otra.php");
}
?>
Saludos