Foros del Web » Programando para Internet » PHP »

Es de php con csv y mysql

Estas en el tema de Es de php con csv y mysql en el foro de PHP en Foros del Web. Por favor, necesito que alguien me ayude, pero qeu no me regañe je es que tengo un problemilla con algo qeu subo, no se si ...
  #1 (permalink)  
Antiguo 23/06/2011, 13:11
Avatar de fernandaYO  
Fecha de Ingreso: mayo-2011
Ubicación: Medellin
Mensajes: 166
Antigüedad: 13 años, 2 meses
Puntos: 4
Es de php con csv y mysql

Por favor, necesito que alguien me ayude, pero qeu no me regañe je
es que tengo un problemilla con algo qeu subo, no se si eso sera de php o de mysql
Una macro me guarda automaticamente un archivo en CSV, y tengo un codigo en php que se encarga de subirlo a una base de datos en mysql, el problema es que como es csv lo separa, claro esta, por comas, y en solo 1 columna y asi sube a la base de datos.

Cuando creo el archivo CSV yo misma, manualmente, y lo pongo en el codigo de php para que l suba, no ocurre lo mismo, sube como tiene que ser, per el problema es que yo necesito que la macro lo cree para poderlo subir sin problema cada que ejcute el codigo.

El codigo php es el siguiente:

Código PHP:
<?
$sqlelim
mysql_query("DELETE FROM aplicaciones_copy",$link);
$row=1;
$fp fopen ("Ficha Tecnica SQL.csv","r");
while (
$data fgetcsv ($fp100";")) 
{
    if (
$row!=1)
    {
        
$Referencia $data[0];
        
$Talla $data[1];
        
$Base $data[2];
        
$Escote $data[3];
        
$Sisa $data[4];
        
$Altura $data[5];
        
$Tirante $data[6];
        
$sql="INSERT INTO aplicaciones_copy (Referencia, Talla, Base, Escote, Sisa, Altura, Tirante, Imagen) VALUES ('$Referencia', '$Talla', '$Base', '$Escote', '$Sisa', '$Altura', '$Tirante', 'NULL')";
        
$resultado=mysql_query($sql,$link);
        if(
mysql_affected_rows($link))
        {
        }
        else
        {
        }
        }
        
$row++;
}
fclose ($fp);
        
?>
__________________
Umm, infraccion :(//
  #2 (permalink)  
Antiguo 23/06/2011, 13:22
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 5 meses
Puntos: 96
Respuesta: Es de php con csv y mysql

Saludos

Para detectar si es inconveniente al momento de hacer el insert, podrías utilizar la funcion mysql_error();

Código PHP:

 $resultado
=mysql_query($sql,$link) or die ("Error al insertar".mysql_error()); 
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 23/06/2011, 13:26
Avatar de saseisa  
Fecha de Ingreso: agosto-2006
Mensajes: 329
Antigüedad: 17 años, 10 meses
Puntos: 9
Respuesta: Es de php con csv y mysql

hola fernanda yo utilizo este codigo para subir el archivo de csv a mysql espero t pueda servir

Código PHP:
<?php
//user y pass y database name
$tbl "tu_tabla_donde_insertas";
$host="localhost";
$user="usuario";
$pass="contrasena";
$database="nombre_bd";
//$filename="CIUDAD.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["submit"]=="submit") {
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>
Upload this file: <INPUT NAME=\"userfile\" TYPE=\"file\">
<INPUT TYPE=\"submit\" VALUE=\"submit\" name=submit></FORM>

"
;
}
?>
  #4 (permalink)  
Antiguo 23/06/2011, 13:29
 
Fecha de Ingreso: diciembre-2008
Mensajes: 190
Antigüedad: 15 años, 7 meses
Puntos: 6
Respuesta: Es de php con csv y mysql

Yo creo que deberías mostrar como se esta generando ese csv para ver porq esta fallando el codigo ...
Según el código veo que evidentemente estas generando un csv del estilo:
referencia ;
datatalla;

etc... lo cual parece raro , por lo gral los csv se procesan linea por linea (con el salto de carro)
es decir:
referencia;datalla
otrareferencia;otradatatalla

Saludos

Etiquetas: csv, mysql
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 01:25.