Hola a todos! Me surgió un problema inesperado en este código. Resulta que en el momento que me ayudaron a resolver este tema (
AQUÍ MISMO) no me percaté de algo... fíjense en el id_categoría nro. 4... al tener solo 2 caractares, cuando hace la comparación para crear la relación ME DEVUELVE CERO
Creo que el problema está en esta líena del código:
$idcategoria=$categoria[substr($data[3],0,3)];
¿Puede ser? ¿Se puede corregir para que me tome si hay 2 o 3 caracteres para que lo realice igual?
Les muestro como serían las tablas y el código más abajo que uso:
tabla CATEGORIA
Código:
id_categoria desc_categoria cod_categoria
1 Abrazaderas ABR
2 Garef GAR
3 Antenas ANT
4 Carbones G.V. GV
tabla LINEAS
Código:
id_linea | desc_linea | relacion | cod_linea
1 | Banda Mini | 1 | ABR01
2 | Banda Standard | 1 | ABR02
3 | Banda Reforzada | 1 | ABR03
4 | Reguladores A | 2 | GAR01
5 | Reguladores B | 2 | GAR02
6 | Antenas A | 3 | ANT01
7 | Antenas B | 3 | ANT02
8 | Carbones A | 0 | GV 01
9 | Carbones B | 0 | GV 02
.......
Código PHP:
$row = 1;
$fp = fopen ('productos.csv','r');
$categoria=array();
$result=mysql_query("select * from categoria");
while($row=mysql_fetch_array($result)) $categoria[$row['cod_categoria']]=$row['id_categoria'];
while ($data = fgetcsv ($fp, 1000, ";"))
{
$num = count ($data);
print " <br>";
$row++;
echo "$row- ".$data[4].$data[3];
foreach ($data as $pos=>$dato) {
$data[$pos] = trim($dato);
}
if (!in_array($data[3],$ids)) {
$ids[] = $data[3];
$idcategoria=$categoria[substr($data[3],0,3)];
$insertar="INSERT INTO lineas (desc_linea,relacion,cod_linea) VALUES ('$data[4]','$idcategoria','$data[3]')";
mysql_query($insertar);
}
}
fclose ($fp);
El máximo de caracteres que tiene que chequear son 3... más NO.
¿Se puede corregir para que me tome si hay 2 o 3 caracteres para que lo realice igual?
Muchas gracias a todos y saludos.
Marx.