|
Mostrando mensaje 11606
|
|
< Anterior | Siguiente >
|
|
|
| Asunto: | Re: [SauloNet] Subir y cnsultar fichero en servidor SQL \ PHP | | Fecha: | Lunes, 21 de Diciembre, 2009 09:56:42 (-0430) | | Autor: | =?UTF-8?Q?Jos=C3=A9_Diaz?= <jocddz @.....com>
|
*a) como subo un fichero de texto formado por registros de 2 campos a un
servidor SQL?*
nunca he hecho o he tenido la necesidad de leer un txt e ingresar su
contenido en la bd, pero se que ese dia puede llegar claro, y es interesante
dicha necesidad, me puse a probar e inventar con unas practicas, lo cual no
es muy eficiente pero se encamina por la idea, aunque esto esta hacia una bd
mysql, en tu caso las cadenas de conexion son diferentes, me imagino que por
PDO puedes adaptarlo o cambiar todas las funciones de mysql por lo que uses
para sql server, ya que con decir "servidor sql" realmente no especificas si
hablas de mySQL o de SQL Server, es un error de algunas personas usar ese
termino de "servidor SQL" siendo SQL un lenguaje estandar de BD, asi que
asumire que hablas de sql server.
-------------------------------------------------------------------------------------------------
<html>
<head>
<title>Manejo de Fichero</title>
</head>
<body>
<h3>Manejo de Fichero</h3>
<form name="formulario" id="formulario" method="post" >
<label for="nombref">Fichero:</label>
<input type="file" name="elfichero" size="50" />
<input type="submit" name="enviar" />
</form>
</body>
<?php
$nombre_fichero = $_POST['elfichero'];
//$archivo = $_FILE['elfichero'];
//echo $archivo;
/*
$dir = dirname(getcwd());
//$ruta = getcwd(); // obtengo el directorio actual.
$ruta=chdir($dir);
echo $ruta;
exit();
*/
//$file =
file_get_contents('/home/jose/Escritorio/tmp/'.$nombre_fichero, true);
//echo $file;
//exit();
$fichero = fopen('/home/jose/Escritorio/tmp/'.$nombre_fichero, 'r')
or die('Error de lectura');
//$fichero = dir($nombre_fichero) or die("Oops! error... error...
feo error!");
//echo $fichero;
//exit();
mysql_connect("localhost","jose","123456") or die("Error de conexion
a la BD");
mysql_select_db("pruebas") or die("Error de conexion a la Tabla de
la BD");
$num_lineas = 0;
while (!feof($fichero)){
$num_lineas++;
// lleyendo la linea:
//$buffer = fgetss($fichero, 4096, '<body> <hr />');
$buffer = fgets($fichero);
//echo "Linea $num_lineas: $buffer <br />";
$nombre=rtrim(substr($buffer,0,-7));
$apellido=ltrim(substr($buffer,10));
mysql_query("insert into personas (nombre, apellido,
nombre_completo) values ('$nombre','$apellido','$buffer')");
echo $buffer.'<br />';
}
//if(mysql_fetch_row($a)) echo "datos ingresados<br />";
//else echo "datos NO ingresados<br />";
// echo "\n";
$num_lineas = $num_lineas-1;
echo "El fichero tiene $num_lineas lineas/registros";
fclose($fichero);
?>
<html>
-------------------------------------------------------------------------------------------------
Busca sobre leer archivos planos txt y tomar los string y como dividirlos
bien sea porque la informacion esta tabulada o evaluando la longitud hasa
llegar al 'espacio entre el nombre y el apellido' cuentas los caracteres y
podrias usar algo que te lea una longitud de un inicio a un final, cortando
asi el nombre en una variable y el apellido en otra variable de todo el
string, o alguna funcion que que detecte el caracter de espacio, y te toma
los caracteres hasta ahi, y eliminar espacios de izquierda del apellido con
ltrim() y de la derecha con rtrim(), mas o menos por ahi debe ir la
cuestion. Como no he tenido esta necesidad y nunca lo he hecho, desconozco
si existan mejores funciones php que sirvan de mejor manera para esta
situacion.
*b) como puedo consultar el campo 2 introduciendo el campo 1 en un
formulario de
pà gina web?
Por ejemplo, si subo un fichero con los campos nombre y apellido al servidor
SQL, ¿cómo puedo consultar el apellido consultando el nombre?*
Pues filtrando la SQL, pero eso no te traera necesariamente un solo
registro, ya que si buscas por 'Maria' o 'Jose' o 'Pablo' es seguro que
tendras en la BD muchas personas con esos nombres pero con distintos
apellidos, asi que al filtrar "select * from tabla where nombre='$nombre'"
te traeras varios registros a no ser que casualmente tengas un solo registro
con ese nombre.
saludos y suerte.
El 18 de diciembre de 2009 14:18, Pablo <thyssens@teleline.es> escribió:
> Hola a todos,
>
> querÃa consultaros dos cositas sobre programación de páginas Web en PHP:
>
> a) como subo un fichero de texto formado por registros de 2 campos a un
> servidor SQL?
>
> b) como puedo consultar el campo 2 introduciendo el campo 1 en un
> formulario de
> pà gina web?
>
> Por ejemplo, si subo un fichero con los campos nombre y apellido al
> servidor
> SQL, ¿cómo puedo consultar el apellido consultando el nombre?
>
> Muchas gracias y felices fiestas a tod@s,
> Pablo Bouvier
>
> ____________________________
>
> Lista de correos de Saulo.Net
> Información, bajas y altas en http://www.saulo.net/lista/
>
|