PHP - ¿Script con PHP?

 
Vista:
sin imagen de perfil

¿Script con PHP?

Publicado por Dani (3 intervenciones) el 14/09/2017 23:41:04
Hola, necesito hacer un script y no sé si php es el lenguje más adecuado, el programa tiene que leer dos columnas de un fichero TXT y comparar una de las columnas con otra de una base de datos y en caso de coincidir, sumar dos campos y actualizar la bbdd. A modo de ejemplo:

Leo un archivo TXT

283748 ~ 0,5
394938 ~ 1,7
348934 ~ 0,4
[...]

Conexión con la base de datos
Leo dos columnas de una tabla de la bbdd

554234 34,5
394938 60,95
234223 23
[...]

Suma 1,7 + 60,95 ya que el numero "394938" esta en el archivo txt y en la bbdd.

Actualiza el campo en la bbdd.

¿Se puede hacer esto con php? sé hacer la conexió de la bbdd y leer los campos pero no tratar con ficheros.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

¿Script con PHP?

Publicado por Yamil Bracho (888 intervenciones) el 14/09/2017 23:52:52
Si, puedes usar PHP para hacer esto. Pra aprocesar el archivo lo abres como un archivo texto y como es "csv" puedes usar las funciones que trae PHP para procesarlo.

Por ejemplo:

1
2
3
4
5
6
7
8
$fp = fopen('mydata.csv', 'r');
while ( !feof($fp) ) {
    $line = fgets($fp, 2048);
    $data = str_getcsv($line, "~");
    print_r($data);
}
 
fclose($fp);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

¿Script con PHP?

Publicado por Dani (3 intervenciones) el 15/09/2017 10:16:30
Gracias por la respuesta.
Una vez leida la fila, ¿como separo las columnas por variables para poder luego hacer la comparación con la bbdd?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

¿Script con PHP?

Publicado por Dani (3 intervenciones) el 15/09/2017 12:32:26
De esta manera sería lo mismo?

1
2
3
4
$filas=file('archivo.txt');
foreach($filas as $value){
list($pais, $sku, $codigo, $precio) = explode("~", $value);
}

Ahora necesito comparar el $sku con el mismo campo de una bbdd y en caso de coincidir, sumar el precio.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
 
// Conectando y seleccionando la base de datos
$link = mysql_connect('localhost', 'user', 'passw')
    or die('No se pudo conectar: ' . mysql_error());
    echo 'Conexion correcta';
    mysql_select_db('gestio') or die('No se pudo seleccionar la base de datos');
 
	// Realizar la consulta MySQL
	$query = 'SELECT SKU, PVD, PROVEEDOR FROM productos';
	$result = mysql_query($query) or die('Consulta fallida: ' . mysql_error());
 
$filas=file('archivo.txt');
foreach($filas as $value){
	list($pais, $sku, $codigo, $precio) = explode("~", $value);
 
	while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
		foreach ($line as $col_value) {
 
		}
	}
}
mysql_close($link);
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar