Foros del Web » Programando para Internet » PHP »

Leer campos de una tabla en codigo php

Estas en el tema de Leer campos de una tabla en codigo php en el foro de PHP en Foros del Web. Hola amigos, no puedo hacer funcionar automaticamnete lo siguiente: La idea principal es: que el usuario seleccione una tabla de la base de datos y ...
  #1 (permalink)  
Antiguo 23/12/2013, 11:14
 
Fecha de Ingreso: septiembre-2009
Mensajes: 135
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Leer campos de una tabla en codigo php

Hola amigos, no puedo hacer funcionar automaticamnete lo siguiente:
La idea principal es: que el usuario seleccione una tabla de la base de datos y cargue un archivo txt con informacion separadas por coma, cada item debera ser ingresado en cada campo de la tabla seleccionada, ejemplo:

archivo de texto
factura, sebastian lucas,cocacola,36,cocacola.jpg
recibo,ileana,gatorade,54,gatorade.jpg

al subir el archivo al servidor lo leara y seleccionando la tabla se grabaran esos datos subido de txt a mi tabla, mi script funciona bien, el problema es que cuando la tabla tiene 5 campos y el archivo 5 textos ya se cae, porque solo esta programdo para cuatro campos, como puedo hacer para que sea dinamico? aqui va mi codigo:

$sql="SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '".$tabla."'";
$result = mysql_query($sql,$conn);
$grabar = "insert into ".$tabla."(";
while ($campos=mysql_fetch_array($result)){
$t_campos=$t_campos.$campos[0].",";
if ($vuelta==$total){
$grabar=$grabar.$campos[0];
} else {
$grabar=$grabar.$campos[0].",";
$vuelta=$vuelta + 1;
}
}
$nombre= "upload/" . basename( $_FILES['uploadedfile']['name']);
$filas= file($nombre);
$grabar = $grabar .") values('";
$ngrabar=$grabar;
foreach($filas as $value){
list($campos1,$campos2,$campos3,$campos4) = explode(",", $value);
$rgrabas=$ngrabar.$campos1."','".$campos2."','".$c ampos3."','".$campos4."')"; //$campo1."','".$campo2."','".$campo3."','".$campo4. "')"
$grabarsql=mysql_query($rgrabas,$conn);
}
echo("<a href='../sistema/listado.php'>Listar los registros</a>");
} else {
echo ("No se subio el archivo");
}

en la linea list($campos1,$campos2, etc es quepermite grabar pero solo a los 4 campos esa es la parte que necesito que sea dinamica, como lo puedo hacer, muchas gracias...
  #2 (permalink)  
Antiguo 23/12/2013, 12:36
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Leer campos de una tabla en codigo php

En lugar de predeterminar 4 variables, toma todo el array y recórrelo con un bucle.

Código PHP:
Ver original
  1. $campos = explode(",", $value);
  2. $string = "";
  3.  
  4. foreach ($campos as $dato)
  5.      $string .= !strlen($string) ? "'" . $dato . "'" : ", '" . $dato . "'";
  6.  
  7. $rgrabas = $ngrabar . $string;

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: arrays, campos, mysql+php, php-mysql, tablas
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 15:54.