Foros del Web » Programando para Internet » PHP »

Un buen Script para almacenes

Estas en el tema de Un buen Script para almacenes en el foro de PHP en Foros del Web. Tengo este Script: <?php //Crear una tabla con 3 campos (referencia,nombre,pvp) //Script para generar/actualizar una tabla en SQL desde un fichero CSV require("conexion.php"); $fp = ...
  #1 (permalink)  
Antiguo 28/11/2003, 13:39
Avatar de indiestudio  
Fecha de Ingreso: julio-2003
Mensajes: 163
Antigüedad: 14 años, 5 meses
Puntos: 1
Un buen Script para almacenes

Tengo este Script:

<?php
//Crear una tabla con 3 campos (referencia,nombre,pvp)
//Script para generar/actualizar una tabla en SQL desde un fichero CSV
require("conexion.php");
$fp = fopen ("LIBRO1.CSV","r");// abre el archivo CSV
//comprueba si la tabla esta vacia
$sql ="SELECT COUNT(*) as total FROM almacen" ;
$resultado =mysql_query ($sql,$conex);

if(mysql_result ($resultado ,0,"total" )>0) //Si la tabla NO esta vacia, comprueba las referencias y las actualiza. Ademas inserta nuevos productos
{

while ($data = fgetcsv ($fp, 1000, ","))
{
print " <br>";
$sql="SELECT * TO almacen WHERE referencia= ".$data[0];
$consulta=mysql_query($sql,$conex);
$refer= mysql_fetch_array($consulta);
if(($refer["nombre"]!=$data[1]) or ($refer["pvp"]!=$data[2]))//comprueba si los datos anteriores son iguales a los que estan por insertar
{
$actualizar="UPDATE almacen SET nombre='$data[1]', pvp='$data[2]' WHERE referencia=".$refer["referencia"];
mysql_query($actualizar,$conex);
echo'ACT';
}
else
{
echo "Referencia:<b><i> ".$data[0]."</i></b> Articulo:<b><i> ".$data[1]."</i></b> PVP: <b><i>".$data[2]."</i></b>";
$insertar="INSERT INTO almacen (referencia,nombre,pvp) VALUES ('$data[0]','$data[1]','$data[2]')";
mysql_query($insertar,$conex);
}
}
fclose ($fp);
}
else //Si la tabla está vacia inserta todo el CSV
{
while ($data = fgetcsv ($fp, 1000, ","))
{
print " <br>";
echo "Referencia:<b><i> ".$data[0]."</i></b> Articulo:<b><i> ".$data[1]."</i></b> PVP: <b><i>".$data[2]."</i></b>";
$insertar="INSERT INTO almacen (referencia,nombre,pvp) VALUES ('$data[0]','$data[1]','$data[2]')";
mysql_query($insertar);
}
fclose ($fp);
}
?>
  #2 (permalink)  
Antiguo 28/11/2003, 13:41
Avatar de indiestudio  
Fecha de Ingreso: julio-2003
Mensajes: 163
Antigüedad: 14 años, 5 meses
Puntos: 1
Lo unico que no funciona lo de actualizar y no se porque
  #3 (permalink)  
Antiguo 03/12/2003, 05:16
Avatar de indiestudio  
Fecha de Ingreso: julio-2003
Mensajes: 163
Antigüedad: 14 años, 5 meses
Puntos: 1
Aqui os dejo el script acabado

<?php
//Crear una tabla con 3 campos (referencia,nombre,pvp)
//Script para generar/actualizar una tabla en SQL desde un fichero CSV
require("conexion.php");
$fp = fopen ("LIBRO1.CSV","r");// abre el archivo CSV
//comprueba si la tabla esta vacia
$sql ="SELECT COUNT(*) as total FROM almacen" ;
$resultado =mysql_query ($sql,$conex);
//Si la tabla NO esta vacia, comprueba las referencias y las actualiza. Ademas inserta nuevos productos
if(mysql_result ($resultado ,0,"total")>0)
{

while ($data = fgetcsv ($fp, 1000, ","))
{

print " <br>";
$sql="SELECT * FROM almacen WHERE referencia = ".$data[0];
$rs = mysql_query($sql);
$rt = mysql_fetch_array($rs);
if(($rt["nombre"]!=$data[1]) or ($rt["pvp"]!=$data[2]))
{
$actualizar="UPDATE almacen SET nombre='$data[1]', pvp='$data[2]' WHERE referencia= ".$rt["referencia"];
mysql_query($actualizar,$conex);
echo'ACT';
}
if($rt["referencia"]!=$data[0])
{
echo "Referencia:<b><i> ".$data[0]."</i></b> Articulo:<b><i> ".$data[1]."</i></b> PVP: <b><i>".$data[2]."</i></b>";
$insertar="INSERT INTO almacen (referencia,nombre,pvp) VALUES ('$data[0]','$data[1]','$data[2]')";
mysql_query($insertar,$conex);
}

}
fclose ($fp);
}
else //Si la tabla está vacia inserta todo el CSV
{
while ($data = fgetcsv ($fp, 1000, ","))
{
print " <br>";
echo "Referencia:<b><i> ".$data[0]."</i></b> Articulo:<b><i> ".$data[1]."</i></b> PVP: <b><i>".$data[2]."</i></b>";
$insertar="INSERT INTO almacen (referencia,nombre,pvp) VALUES ('$data[0]','$data[1]','$data[2]')";
mysql_query($insertar);
}
fclose ($fp);
}
?>
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 03:45.