Comunidad de diseño web y desarrollo en internet online

problemas de conexion con php y mysql para cargar datos Desde .CSV

Citar            
MensajeEscrito el 23 Oct 2013 09:29 pm
hola amigos del foro de CRISTALAB, saludos a todo tengo un pequeño problemita con este codigo necesito que me cargue un archivo .csv y su contenido se guarde directamente en una base de datos.

este es el codigo:

phpexcel.php

Código PHP :

Código PHP:
<?php  
//user y pass y database name  
$tbl = "phpexcel";  
$host="localhost";  
$user="manux";  
$pass="12345";  
$database="prueba";  
//$filename="phpexcel.csv";  
//como vamos a delimitar el csv  
function getcsv($filename, $delim =","){  

    $row = 0;  
    $dump = array(); //creamos un array para el csv  

    $f = fopen ($filename,"r");  
    $size = filesize($filename)+1;  
         while ($data = fgetcsv($f, $size, $delim)) {  
         $dump[$row] = $data; //ponemos los datos en el array  

         //echo $data[1]."<br>";  
         $row++;  
}  
fclose ($f);  

return $dump;  
}  

//esto pone los datos en la funcion al csv  
function makeINSERTS($text, $table){  
    global $linkdata; //hace la conexion  
    $insert = array(); //verifica la conexion y la bd  
    $i = 0;  

        while (list($key, $val) = @each($text)){  
                         //inserta los datos  
            $insert[$i] = "INSERT into ".$table." VALUES('',')";  
            $insert[$i] .= implode("','", $val);  
            $insert[$i] .= "')\n";  
            echo "{$insert[$i]}";  
            $result = mysql_query($insert[$i], $linkdata) or die('Query failed: ' . mysql_error());  
            $i++;  
}  

return $insert;  

}  

//   
    if ($_POST["Cargar"]=="Cargar") {  
        if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {  

         $file=$_FILES['userfile']['tmp_name'];  
         $linkdata = mysql_connect($host, $user, $pass)  
         or die('no hay conexion: ' . mysql_error());  

         mysql_select_db($database) or die('no se puede seleccionar la bd');  

         $CSVarray = getcsv($file);  
         $CSVarray = makeINSERTS($CSVarray, "$tbl");  

   } else {  
         echo "error subir archivo";  
         exit;  
   }  
   } else {  
//form upload  
    echo "  
<FORM ENCTYPE=\"multipart/form-data\" ACTION=\"".$_SERVER['PHP_SELF']."\" METHOD=POST>  
Cargar Archivo: <INPUT NAME=\"userfile\" TYPE=\"file\">  
<INPUT TYPE=\"submit\" VALUE=\"Cargar\" name=Cargar></FORM>  
 ";  
 }  
?>

y este es el contenido del archivo csv:

1,manuel,[email protected]
2,yosimar,[email protected]
3,luis,[email protected]
4,jose,[email protected]
5,manuel2,[email protected]
6,yosimar2,[email protected]
7,luis2,[email protected]
8,jose2,[email protected]
9,manuel3,[email protected]
10,yosimar3,[email protected]

y la base de datos es esta:

nombre de base de datos: phpexcel

campos de base de datos:

id int(11) AUTO_INCREMENT
nombre varchar(100) utf8_general_ci
correo varchar(100) utf8_general_ci

y me muestra este error :

INSERT into phpexcel VALUES('',')1','manuel','[email protected]') Query failed: Column count doesn't match value count at row 1

por favor alguien que me pueda ayudar a correguir esa falla e hecho de todo y nada, les estaría muy agradecido

Por manuxvalero

3 de clabLevel



Genero:Masculino  

estudiante de informatica

chrome
Citar            
MensajeEscrito el 24 Oct 2013 04:12 pm
En la cláusula VALUES del INSERT de SQL tienes un paréntesis abierto pero dos cerrados. Es un error de sintaxis.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 25 Oct 2013 03:24 am
igual mi pana yo probé como tu me dice le cerre el parentisis y nada todavia no e podido cargar los datos en myqsl

Por manuxvalero

3 de clabLevel



Genero:Masculino  

estudiante de informatica

chrome
Citar            
MensajeEscrito el 25 Oct 2013 12:14 pm
Aja... ¿Y el mensaje de error es?...

Además, no tenías que cerrar paréntesis, tenías que quitar un paréntesis.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 25 Oct 2013 02:49 pm
le quite el parentesis q esta solo y me sale este error ahora :

INSERT into phpexcelVALUES('','')manuel','[email protected]' 'Query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''','')manuel','[email protected]' '' at line 1

Por manuxvalero

3 de clabLevel



Genero:Masculino  

estudiante de informatica

chrome
Citar            
MensajeEscrito el 25 Oct 2013 04:19 pm

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 25 Oct 2013 06:35 pm
tienes una coma simple DEMAS en tu consulta, pero mejor si publicas ahora tu CODIGO para ver que error mas tienes

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.