Foros del Web » Programando para Internet » PHP »

ayuda con un bucle

Estas en el tema de ayuda con un bucle en el foro de PHP en Foros del Web. hola a todos, bueno tengo un problema lo que yo quiero hacer es pasar datos de un xls a un tabla en mysql y tengo ...
  #1 (permalink)  
Antiguo 02/10/2007, 10:27
 
Fecha de Ingreso: septiembre-2007
Mensajes: 83
Antigüedad: 16 años, 7 meses
Puntos: 0
ayuda con un bucle

hola a todos, bueno tengo un problema lo que yo quiero hacer es pasar datos de un xls a un tabla en mysql y tengo mas o menos una idea pero todavia no la llego a implementar bien

Código PHP:
<?php
require_once 'Excel/reader.php';  
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('CP1251');

$data->read('Libro1.xls');  // xls que pasaria a tabla mysql
error_reporting(E_ALL E_NOTICE);
for (
$i 1$i <= $data->sheets[0]['numRows']; $i++) {
echo 
"insert into aa values(";
    for (
$j 1$j <= $data->sheets[0]['numCols']; $j++) {
        if(
$j != $data->sheets[0]['numCols'] ){
            
$sig=",";
            }else{
            
$sig="";
        }
        echo 
'"'.$data->sheets[0]['cells'][$i][$j].'"'.$sig;
    }
echo 
")<br>";
}
?>
eso me muestra

insert into aa values("xl1","unnombre","55263")
insert into aa values("xl2","unnombre","55264")

osea los insert para pasarlo a mysql pero solo es en forma visual en simples echo ojala me puedan ayudar a formar la cadena entera para insertar la data en la tabla mysql bueno gracias de antemano

saludos.
  #2 (permalink)  
Antiguo 02/10/2007, 10:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: ayuda con un bucle

En lugar de usar echo, asignalos a una variable y despues ya que tienes construido tu insert, usa mysql_query para enviarlo a la base de datos.

Saludos.
  #3 (permalink)  
Antiguo 02/10/2007, 10:45
Avatar de helder  
Fecha de Ingreso: agosto-2007
Ubicación: Colombia
Mensajes: 50
Antigüedad: 16 años, 8 meses
Puntos: 1
Re: ayuda con un bucle

Amigo debes hacer lo que te indica GatorV y verificar que la cantidad de columnas de la tabla aa corresponda con las columnas que estas leyendo del archivo xls, tambien el tipo de dato de cada columna.

Ya lo tienes listo.
  #4 (permalink)  
Antiguo 02/10/2007, 10:50
 
Fecha de Ingreso: septiembre-2007
Mensajes: 83
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: ayuda con un bucle

si eso es lo que eh hecho pero el problema esta aqui

'"'.$data->sheets[0]['cells'][$i][$j].'"'.$sig;

porque biene de un bucle y no se como estraer todos los datos del bucle
quedaria insert into aa values(" el bucle de aqui como sacaria sus valores ") no se si me deje entender bueno ojala me ayuden

saludos.
  #5 (permalink)  
Antiguo 02/10/2007, 11:09
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: ayuda con un bucle

Código PHP:
<?php 
require_once 'Excel/reader.php';   
$data = new Spreadsheet_Excel_Reader(); 
$data->setOutputEncoding('CP1251'); 

$data->read('Libro1.xls');  // xls que pasaria a tabla mysql 
error_reporting(E_ALL E_NOTICE); 
for (
$i 1$i <= $data->sheets[0]['numRows']; $i++) { 
$sql .= "insert into aa values("
    for (
$j 1$j <= $data->sheets[0]['numCols']; $j++) { 
        if(
$j != $data->sheets[0]['numCols'] ){ 
            
$sig=","
            }else{ 
            
$sig=""
        } 
        
$sql .= '"'.$data->sheets[0]['cells'][$i][$j].'"'.$sig
    } 
$sql .= ")<br>"


print 
$sql;
?>
Con esto todos tus insert te quedan en la variable $sql y van a quedar de esta manera:
insert into aa values('.$data->sheets[0]['cells'][$i][$j].','.$data->sheets[0]['cells'][$i][$j].','.$data->sheets[0]['cells'][$i][$j].');
insert into aa values('.$data->sheets[0]['cells'][$i][$j].','.$data->sheets[0]['cells'][$i][$j].','.$data->sheets[0]['cells'][$i][$j].');
insert into aa values('.$data->sheets[0]['cells'][$i][$j].','.$data->sheets[0]['cells'][$i][$j].','.$data->sheets[0]['cells'][$i][$j].');

No es necesario que todo quede en un mismo insert ya que puedes copiar y pegar en mysql o verificar que todo este bien y enviarlo desde el mismo script a mysql.


Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #6 (permalink)  
Antiguo 02/10/2007, 11:52
 
Fecha de Ingreso: septiembre-2007
Mensajes: 83
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: ayuda con un bucle

muchas gracias Marvin no sabia esa de ponerle la misma variable obtendria los datos del bucle ... yo hacia algo parecido pero con diferentes variables y solo obtenia el ultimo valor de cada del bucle x fila

jeje thx me salvaste de una

un saludo
  #7 (permalink)  
Antiguo 02/10/2007, 13:51
 
Fecha de Ingreso: septiembre-2007
Mensajes: 83
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: ayuda con un bucle

hola tengo una duda... me funciono muy bien el codigo que pusiste pero x algun motivo no inserta en la DB creo que es porque el mysql_query(sql); solo reconoce el primer registro mi pregunta seria como hacer ese mysql_quey(sql) se repita para cada registro ojala no se hayan aburrido de mis preguntitas jeje

un saludo
  #8 (permalink)  
Antiguo 02/10/2007, 14:07
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: ayuda con un bucle

Código PHP:
<?php  
require_once 'Excel/reader.php';    
$data = new Spreadsheet_Excel_Reader();  
$data->setOutputEncoding('CP1251');  

$data->read('Libro1.xls');  // xls que pasaria a tabla mysql  
error_reporting(E_ALL E_NOTICE);  

//COMIENZA UN CICLO PARA LAS FILAS
for ($i 1$i <= $data->sheets[0]['numRows']; $i++) {  
//PARA QUE SE RENUEVE LA VARIABLE Y NO SIGA JUNTANDO DATOS
//SACALE EL PUNTO
$sql "insert into aa values(";  
//COMIENZA EL SEGUNDO CICLO PARA LAS COLUMNAS
    
for ($j 1$j <= $data->sheets[0]['numCols']; $j++) {  
        if(
$j != $data->sheets[0]['numCols'] ){  
            
$sig=",";  
            }else{  
            
$sig="";  
        }  
        
$sql .= '"'.$data->sheets[0]['cells'][$i][$j].'"'.$sig;  
    }  
//TERMINA EL CICLO DE LAS COLUMNAS
$sql .= ")<br>"
//ACA ES DONDE EL INSERT YA ESTA COMPLETO Y PASA AL OTRO
//ENTONCES ACA ES DONDE LO GUARDAS EN LA BD
mysql_query($sql);
}  
//TERMINA EL CICLO DE LAS FILAS
?>
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #9 (permalink)  
Antiguo 02/10/2007, 14:20
 
Fecha de Ingreso: septiembre-2007
Mensajes: 83
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: ayuda con un bucle

era por el punto que no me salia jeje weno gracias denuevo marvin ruleaz! ^^

un saludo.
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 05:46.