Foros del Web » Programando para Internet » PHP »

recoger emails de un archivo excel para mandar

Estas en el tema de recoger emails de un archivo excel para mandar en el foro de PHP en Foros del Web. Por medio de un formulario recogo un archivo excel (csv)para insertar todos los datos de los estudiantes de un tiron. Utilizo este script. Y me ...
  #1 (permalink)  
Antiguo 31/01/2007, 06:19
Avatar de Kalili  
Fecha de Ingreso: enero-2002
Ubicación: Gate 69
Mensajes: 210
Antigüedad: 22 años, 3 meses
Puntos: 0
recoger emails de un archivo excel para mandar

Por medio de un formulario recogo un archivo excel (csv)para insertar todos los datos de los estudiantes de un tiron. Utilizo este script. Y me lo inserta perfectamente.
Código PHP:
$filename $_SERVER['DOCUMENT_ROOT']."/beheer/excel/".$_GE["filename"];
$handle fopen("$filename""r");
while ((
$data fgetcsv($handle1000";")) !== FALSE) {
$query "INSERT INTO estudiantes VALUES ('"implode("','"$data)."')";
$query = @mysql_query($query,$database); 
Ahora mi problema esque uno de los datos de los estudiantes es su email y yo quiero recoger ese dato (field email) para mandar un email a cada uno de los estudiantes insertados.Pero que me lo haga automaticamente osea que a la vez que inserto los datos los mande a su email correspondiente.
Como se haria esto?
Muchas gracias
__________________
saludos
  #2 (permalink)  
Antiguo 31/01/2007, 08:44
Avatar de carlosmbrizuela  
Fecha de Ingreso: enero-2007
Ubicación: La Plata (Argentina)
Mensajes: 490
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: recoger emails de un archivo excel para mandar

lo que puedes hacer es una ves insertado en la base recuperes el mail y lo mandes con la info que necesitas.

espero te ayude...
  #3 (permalink)  
Antiguo 31/01/2007, 09:17
Avatar de Kalili  
Fecha de Ingreso: enero-2002
Ubicación: Gate 69
Mensajes: 210
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: recoger emails de un archivo excel para mandar

Si pero como se yo cual fue el primero y el ultimo estudiante?
Ten en cuenta que puede haber multiples inserts.
he probado con mysql_last_id() poniendolo antes del insert y despues del insert y no funciona nada.
Gracias
__________________
saludos
  #4 (permalink)  
Antiguo 31/01/2007, 10:43
Avatar de carlosmbrizuela  
Fecha de Ingreso: enero-2007
Ubicación: La Plata (Argentina)
Mensajes: 490
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: recoger emails de un archivo excel para mandar

debrias preguntar cual fue el ultimo registro insertado y hacer lo que ya dije. No se cual puede ser esa funcion. :(:(

aca se habla un poco del tema:
http://www.forosdelweb.com/f18/obtener-id-del-ultimo-registro-insertado-458753/
http://www.desarrolloweb.com/articulos/1433.php

saludos
  #5 (permalink)  
Antiguo 31/01/2007, 11:59
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: recoger emails de un archivo excel para mandar

Creo que la mejor solucion es que al momento de enviar el mail guardes ese mail en la bd... y cuando vayas a enviarlos chequees que sean distintos a los que tienes en la bd... asi le envias mails a todos y sin repeticion... y si quieres enviar un segundo mail vacias tu base de datos y lo envias.

Suerte!
  #6 (permalink)  
Antiguo 31/01/2007, 12:07
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: recoger emails de un archivo excel para mandar

A ver si entendí...vos necesitas que en cada insert se le mande un email a cada usuario diciéndole algo como "Hola, te han dado de alta en el sistema, que lindo!"?.
Si es así, vos tenes una iteración ya sobre $data. Si sabes cual es la posición que contiene el email en este array (que seguro lo sabrás) todo lo que debes hacer un mail() ahí mismo...es mas, ya lo tenes hecho, fijate (supongamos en la primer posición es el nombre y la segunda el email):

Código PHP:
$filename $_SERVER['DOCUMENT_ROOT']."/beheer/excel/".$_GE["filename"]; 
$handle fopen("$filename""r"); 
while ((
$data fgetcsv($handle1000";")) !== FALSE) { 
$query "INSERT INTO estudiantes VALUES ('"implode("','"$data)."')";
#Envias el email acá, y si necesitas mandarle el código de registro lo obtenes de mysql_insert_id();
mail($data[1], ...); 
$query = @mysql_query($query,$database); 
Espero haber entendido y de ser así que sirva.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #7 (permalink)  
Antiguo 01/02/2007, 02:33
Avatar de Kalili  
Fecha de Ingreso: enero-2002
Ubicación: Gate 69
Mensajes: 210
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: recoger emails de un archivo excel para mandar

Exactamente eso es lo que quiero nicolaspar...
He hecho como tu me dices pero no lo hace.

Me parece que $data no contiene ningun array porque no me coge ningun dato..
__________________
saludos
  #8 (permalink)  
Antiguo 01/02/2007, 08:08
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: recoger emails de un archivo excel para mandar

kalili, deberás debugeuar tu script...como? con simples echos (imagino que no le pusiste que te envíe mails ya sin antes proberlos, bambardearas a varias personas si así lo estas haciendo, para estos procesos tenes que tener un poco de cuidado).
Arranca haciendo algo como:

Código PHP:
$filename $_SERVER['DOCUMENT_ROOT']."/beheer/excel/".$_GE["filename"]; 
$handle fopen("$filename""r"); 
while ((
$data fgetcsv($handle1000";")) !== FALSE) { 
print_r$data ) ; exit; #Cortamos el script y veremos que tiene data primero.
$query "INSERT INTO estudiantes VALUES ('"implode("','"$data)."')";
#Envias el email acá, y si necesitas mandarle el código de registro lo obtenes de mysql_insert_id();
mail($data[1], ...); 
$query = @mysql_query($query,$database); 
__________________
Mi punto de partida es Que Bueno Lo Nuevo
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 17:05.