Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO no puedo importar

Estas en el tema de no puedo importar en el foro de PHP en Foros del Web. He estado haciendo un programa de control de stock tengo configurados los botones, es mas un boton me funciona pero con los otros no se ...
  #1 (permalink)  
Antiguo 08/04/2015, 00:12
Avatar de rafa15  
Fecha de Ingreso: diciembre-2014
Ubicación: Barcelona
Mensajes: 11
Antigüedad: 9 años, 4 meses
Puntos: 0
no puedo importar

He estado haciendo un programa de control de stock tengo configurados los botones, es mas un boton me funciona pero con los otros no se porque deja de funcionar uno no importa nada y el otro dice que no eh declarado variables la verdad es que no tengo idea de lo que es.
este es mi script en php por favor ayuda
Código PHP:
<?php

try{
$connexio=mysqli_connect("localhost","root","");
}
catch(
Exception $e){
echo 
$e-getMessage()."Error en la conexion BBDD";
}
$db=mysqli_select_db($connexio,"control_stock");
if(!
$db)
{
echo 
"Error en la conexion db";
}
else
echo 
"db ok ";
session_start();
$func=$_POST['accio'];
if(
$func=='base')
{

$tipo $_FILES['bdd']['type'];
$tamanio $_FILES['bdd']['size'];
$archivotmp $_FILES['bdd']['tmp_name'];
//guardamos una ruta
$archivo "archivos/bdd.csv";

move_uploaded_file($archivotmp$archivo);
//cargamos el archivo
    
$fname $_FILES['bdd']['name'];
    echo 
'archivo: '.$fname.' ';
    
$chk_ext explode(".",$fname);
    if(
strtolower(end($chk_ext)) == "csv")
    {
        
mysqli_query($connexio,"truncate `base de datos`");
        
$lineas file('archivos/bdd.csv');
        
//inicializamos variable a 0, esto nos ayudará a indicarle que no lea la primera línea
        
$i=0;
        
//Recorremos un bucle para leer línea por línea
        
foreach ($lineas as $linea_num => $linea)
        
//abrimos bucle
        
{
        
/*si es diferente a 0 significa que no se encuentra en la primera línea (con los títulos de las columnas) y por lo tanto puede leerla*/
        
if($i != 0)
        {
        
//La funcion explode nos ayuda a delimitar los campos, por lo tanto irá leyendo hasta que encuentre un ;
        
$data explode(";",$linea);
        
//Almacenamos los datos que vamos leyendo en una variable

        
$inser="INSERT into `base de datos`(`Id`, `Id Adicional`, `Cod.Barras`,`Categoria`,`Producto`,`Precio`,`%Imp.`,`Pvp`,`Precio Coste`,`Margen`,`Beneficio`,`Stock`,`Editar`,`Eliminar`)
                    values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]','$data[10]','$data[11]','$data[12]','$data[13]')"
;
        
//guardamos en base de datos la línea leida
        
mysqli_query($connexio,$inser);
        
//cerramos condición
        
}
        
$i++;
        
//cerramos bucle
        
}
        
//echo"<script>alert('EL ARCHIVO HA TERMINADO DE IMPORTAR')</script>";
        
header('location:control.php');
    }
    else
    {
        
//si aparece esto es posible que el archivo no tenga el formato adecuado, inclusive cuando es cvs, revisarlo para             //ver si esta separado por " , "
        
echo "Archivo invalido!";
    }
}

elseif(
$func=='uno')
{
    
$tipo $_FILES['albarau']['type'];
    
$tamanio $_FILES['albarau']['size'];
    
$archivotmp $_FILES['albarau']['tmp_name'];
//guardamos una ruta
$archivo "archivos/alb1.csv";

move_uploaded_file($archivotmp$archivo);
    
$fname $_FILES['albarau']['name'];
    echo 
'archivo: '.$fname.' ';
    
$chk_ext explode(".",$fname);
    if(
strtolower(end($chk_ext)) == "csv")
    {
        
//mysqli_query($connexio,"Delete from `albaran1`");
        
$lineas file('archivos/alb1.csv');
        
$i=0;
        foreach (
$lineas as $linea_num => $linea)
        
//abrimos bucle
        
{
        if(
$i != 0)
        {
        
        
$data explode(";",$linea);
        
//Almacenamos los datos que vamos leyendo en una variable

        
$inser="INSERT into `albaran1`(`Categoria`, `Id`, `Cod.Barras`,`Producto`,`Cantidad`,`Precio`,`%Impuesto`,`Total`,`Almacen Destino`)
                    values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]')"
;
        
        
mysqli_query($connexio,$inser);
        
//cerramos condición
        
}
        
$i++;
        
//cerramos bucle
        
}
        
//echo"<script>alert('EL ARCHIVO HA TERMINADO DE IMPORTAR')</script>";
        
header('location:control.php');
    }
    else
    {
        echo 
"Archivo invalido!";
    }
}

elseif(
$func=='dos')
{
    
$tipo $_FILES['albado']['type'];
    
$tamanio $_FILES['albado']['size'];
    
$archivotmp $_FILES['albado']['tmp_name'];
//guardamos una ruta
$archivo "archivos/alb2.csv";

move_uploaded_file($archivotmp$archivo);

    
$fname $_FILES['albado']['name'];
    echo 
'archivo: '.$fname.' ';
    
$chk_ext explode(".",$fname);
    if(
strtolower(end($chk_ext)) == "csv")
    {
        
//mysqli_query($connexio,"Delete from `albaran1`");
        
$lineas file('archivos/alb2.csv');
        
//inicializamos variable a 0, esto nos ayudará a indicarle que no lea la primera línea
        
$i=0;
        
//Recorremos un bucle para leer línea por línea
        
foreach ($lineas as $linea_num => $linea)
        {
        if(
$i != 0)
        
//abrimos condición, solo entrará en la condición a partir de la segunda pasada del bucle.
        
{
        
$data explode(";",$linea);

        
$inser="INSERT into `albaran2`(`Categoria`, `Id`, `Cod.Barras`,`Producto`,`Cantidad`,`Precio`,`%Impuesto`,`Total`,`Almacen Destino`)
                    values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]','$data[7]','$data[8]')"
;
        
//guardamos en base de datos la línea leida
        
mysqli_query($connexio,$inser);
        
//cerramos condición
        
}
        
$i++;
        }
        echo
"<script>alert('EL ARCHIVO HA TERMINADO DE IMPORTAR')</script>";
        
//header('location:control.php');
    
}
    else
    {
        echo 
"Archivo invalido!";
    }
}

elseif(
$func=='tres')
{
    
$tipo $_FILES['albat']['type'];
    
$tamanio $_FILES['albat']['size'];
    
$archivotmp $_FILES['albat']['tmp_name'];
//guardamos una ruta
    
$archivo "archivos/alb3.csv";
    
move_uploaded_file($archivotmp$archivo);
    
$fname $_FILES['albat']['name'];
    echo 
'archivo: '.$fname.' ';
    
$chk_ext explode(".",$fname);
    if(
strtolower(end($chk_ext)) == "csv")
    {
        
mysqli_query($connexio,"Delete from `albaran3`");
        
$lineas file('archivos/alb3.csv');
        
//inicializamos variable a 0, esto nos ayudará a indicarle que no lea la primera línea
        
$a=0;
        foreach (
$lineas as $linea_num => $line)
        {
        if(
$a != 0)
        
        {
        
$dat explode(";",$line);
        
//Almacenamos los datos que vamos leyendo en una variable

        
$inser="INSERT into `albaran2` (`Categoria`, `Id`, `Cod.Barras`,`Producto`,`Cantidad`,`Precio`,`%Impuesto`,`Total`,`Almacen Destino`)
        values(`$dat[0]`,`$dat[1]`,`$dat[2]`,`$dat[3]`,`$dat[4]`,`$dat[5]`,`$dat[6]`,`$dat[7]`,`$dat[8]`)"
;
        
        
mysqli_query($connexio,$inser);
        echo 
$a;
        
        }
        
$a++;
        }
        echo
"<script>alert('EL ARCHIVO HA TERMINADO DE IMPORTAR')</script>";
        
//header('location:control.php');
    
}
    else
    {
        echo 
"Archivo invalido!";
    }   
}
?>

y este es mi script en html

Código HTML:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"xml:lang="es" lag="es">
<head>
	
	<style>
	body{
	background-color: black;
	color:white;}
	.div1
	{
	width: 50%;
	height: 85%;
	top:15%;
	float:left;
	}
	

	input
	{
	background-color: red;
	color: white;
	}
	input:hover
	{
		background-color: orange;
		color:black;
	}
	th {text-align: left; background-color: blue;border:solid 1px red;}
	th,td {padding:0.4em;border:solid 1px white;}
	td:hover{color:red;}
	
	</style>
	<script>
	function base()
	{ 
		document.getElementById("accio").value="base";
		document.form1.action='subir.php';
		document.form1.submit();
	}
	function uno()
	{ 
		document.getElementById("accio").value="uno";
		document.form1.action='subir.php';
		document.form1.submit();
	}
	function dos()
	{ 
		document.getElementById("accio").value="dos";
		document.form1.action='subir.php';
		document.form1.submit();
	}
	function tres()
	{ 
		document.getElementById("accio").value="tres";
		document.form1.action='subir.php';
		document.form1.submit();
	}
	</script>
</head>
<body>
<center><h1>Control de Stock</h1></center>

<div class="div1">
<form name="form1" method="POST" enctype="multipart/form-data">
	Base de datos<br><input type="file" name="bdd" id="bdd"></input>&nbsp&nbsp
	<input onclick="base()" type="submit" name="bbdd" id="bbdd" value="ACTUALIZAR"></input><br>


	Albaran1<br><input type="file" name="albarau" id="albarau"></input>&nbsp&nbsp
	<input onclick="uno()" type="submit" name="albu" id="albu" value="ACTUALIZAR"></input><br>


	Albaran2<br><input type="file" name"albado" id="albado"></input>&nbsp&nbsp
	<input onclick="dos()" type="button" name="albarados" id="albarados" value="ACTUALIZAR"></input><br>


	Albaran3<br><input  type="file" name="albat" id="albat"></input>&nbsp&nbsp
	<input onclick="tres()" type="submit" name="albt" id="albt" value="ACTUALIZAR"></input><br>


	Albaran4<br><input  type="file" name="alb4" id="alb4"></input>&nbsp&nbsp<input onclick="pdaa()" type="submit" name="albc" id="albc" value="ACTUALIZAR"></input><br>

	Pda<br><input  type="file" name="pda" id="pda"></input>&nbsp&nbsp<input type="submit" name="pdaa" id="pdaa" value="ACTUALIZAR"></input><br>
	Ventas<br><input  type="file" name="venta" id="venta"></input>&nbsp&nbsp<input onclick="vent()" type="submit" name="vent" id="vent" value="ACTUALIZAR"></input><br><br>&nbsp&nbsp<input type="reset" name="borrar" id="borrar" value="LIMPIAR"></input>
	<INPUT TYPE="hidden" name='accio' ID='accio'>
</form></div> 
  #2 (permalink)  
Antiguo 08/04/2015, 04:13
(Desactivado)
 
Fecha de Ingreso: abril-2015
Ubicación: España
Mensajes: 616
Antigüedad: 9 años
Puntos: 74
Respuesta: no puedo importar

has puesto name"albado" (le falta el =)

en uno tienes puesto type="button" en vez de type="submit"

te falta poner las funciones vent() y pdaa()

al submit de Pdaa le falta el onclick

Albaran4 tiene onclick="pdaa()" (que me imagino que está mal)

Última edición por superweb360; 08/04/2015 a las 04:26
  #3 (permalink)  
Antiguo 09/04/2015, 05:09
Avatar de rafa15  
Fecha de Ingreso: diciembre-2014
Ubicación: Barcelona
Mensajes: 11
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: no puedo importar

GRACIAS, ahora lo corregi y ha solucionado un problema, pero aun tengo el otro problema que es que no me haces los insert. puse un alert que si se ejecuta, osea que entra al bucle pero no me hace los insert y la verdad no lo entiendo, porque solo el insert me funciona en el primero que es el de base de datos (bdd)
  #4 (permalink)  
Antiguo 09/04/2015, 19:05
Avatar de rafa15  
Fecha de Ingreso: diciembre-2014
Ubicación: Barcelona
Mensajes: 11
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: no puedo importar

hola, eh ido probando con los alert y me eh dado cuenta que no entra al foreach y no le veo el error por fa si lo podrian revisar por ese lado
  #5 (permalink)  
Antiguo 10/04/2015, 08:52
(Desactivado)
 
Fecha de Ingreso: abril-2015
Ubicación: España
Mensajes: 616
Antigüedad: 9 años
Puntos: 74
Respuesta: no puedo importar

Código PHP:
Ver original
  1. $lineas = file('archivos/bdd.csv');

¿Estos ficheros csv están llenos?

Por otro lado, quizá tengas puesta mal la ruta de los ficheros. ¿El directorio 'archivos' lo tienes en la raíz?
  #6 (permalink)  
Antiguo 10/04/2015, 15:44
Avatar de rafa15  
Fecha de Ingreso: diciembre-2014
Ubicación: Barcelona
Mensajes: 11
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: no puedo importar

si, se encuentra en la raiz. especificamente bdd.csv si lo inserta pero los otros no
  #7 (permalink)  
Antiguo 10/04/2015, 17:49
(Desactivado)
 
Fecha de Ingreso: abril-2015
Ubicación: España
Mensajes: 616
Antigüedad: 9 años
Puntos: 74
Respuesta: no puedo importar

si no entra en el foreach significa que count($lineas) = 0
si count($lineas) = 0 significa que en alb1.csv no hay datos
  #8 (permalink)  
Antiguo 11/04/2015, 02:14
Avatar de rafa15  
Fecha de Ingreso: diciembre-2014
Ubicación: Barcelona
Mensajes: 11
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: no puedo importar

pues si tiene datos alb1.csv y eh intentado con otros que tengo y tampoco los inserta
  #9 (permalink)  
Antiguo 16/04/2015, 04:20
Avatar de rafa15  
Fecha de Ingreso: diciembre-2014
Ubicación: Barcelona
Mensajes: 11
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: no puedo importar

Si en caso alguien sabe como importarlo, pero ahora en xml por probar de otra forma?
  #10 (permalink)  
Antiguo 25/04/2015, 05:35
Avatar de rafa15  
Fecha de Ingreso: diciembre-2014
Ubicación: Barcelona
Mensajes: 11
Antigüedad: 9 años, 4 meses
Puntos: 0
Respuesta: no puedo importar

Bueno lo eh revisado mas profundamente y era un problema que cuando escribia la primera fila me faltaba un espacio igualmente Gracias

Etiquetas: phpmyadmin, scripts
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 07:25.