PHP - Problema con strpos

   
Vista:
Imágen de perfil de Jorge

Problema con strpos

Publicado por Jorge (42 intervenciones) el 01/12/2014 19:33:58
Hola, buenas tardes, alguien puede ayudarme por favor:

el if ($pos === false) { siempre se ejecuta exista o no la referencia en el archivo .csv

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (false !== strpos($url,'cron_10')) {
    $descargar = file_get_contents("$url_csv");
        file_put_contents("../csv-temp/productos.csv", $descargar);
        $section = "../csv-temp/productos.csv";
} else {
   $section = file_get_contents('../csv-temp/productos.csv');
}
$section=str_replace(";", " ", $section);
$section=str_replace(",", " ", $section);
 
if ($borrar_productos == "1") {
        echo "<br/>Buscando productos que ya no existen...<br/>";
$registros_encontrados = $link->query("SELECT * FROM ps_product") or die (mysql_error());
 
while ($registro = mysqli_fetch_array($registros_encontrados)){
 
$ref = $registro['reference'];
$pos = strpos($section, $ref);
if ($pos === false) {
$buscaid = $link->query("SELECT id_product FROM ps_product WHERE reference='$ref'") or die (mysql_error()); $id_product = mysqli_fetch_row($buscaid); $id = $id_product[0];
 
if(!$resultado = $link->query("delete from ps_product where reference='$ref'"))
{
        die('Ocurrió un error: [' . $link->error . ']');
}
        if(!$resultado = $link->query("delete from ps_product_shop where id_product=$id"))
{
        die('Ocurrió un error: [' . $link->error . ']');
}
        if(!$resultado = $link->query("delete from ps_category_product where id_product=$id"))
{
        die('Ocurrió un error: [' . $link->error . ']');
}
        if(!$resultado = $link->query("delete from ps_product_lang where id_product=$id and id_lang=1"))
{
        die('Ocurrió un error: [' . $link->error . ']');
}
        if(!$resultado = $link->query("delete from ps_product_lang where id_product=$id and id_lang=2"))
{
        die('Ocurrió un error: [' . $link->error . ']');
}
        if(!$resultado = $link->query("delete from ps_product_lang where id_product=$id and id_lang=3"))
{
        die('Ocurrió un error: [' . $link->error . ']');
}
        if(!$resultado = $link->query("delete from ps_specific_price where id_product=$id"))
{
        die('Ocurrió un error: [' . $link->error . ']');
}
        if(!$resultado = $link->query("delete from ps_stock_available where id_product=$id"))
{
        die('Ocurrió un error: [' . $link->error . ']');
}
        if(!$resultado = $link->query("delete from ps_image where id_product=$id"))
{
        die('Ocurrió un error: [' . $link->error . ']');
}
        if(!$resultado = $link->query("delete from ps_image_shop where id_image=$id"))
{
        die('Ocurrió un error: [' . $link->error . ']');
}
        if(!$resultado = $link->query("delete from ps_image_lang where id_image=$id and id_lang=1"))
{
        die('Ocurrió un error: [' . $link->error . ']');
}
        if(!$resultado = $link->query("delete from ps_image_lang where id_image=$id and id_lang=2"))
{
        die('Ocurrió un error: [' . $link->error . ']');
}
        if(!$resultado = $link->query("delete from ps_image_lang where id_image=$id and id_lang=3"))
{
        die('Ocurrió un error: [' . $link->error . ']');
}
$cuentaid = strlen($id);
if ($cuentaid == 1 or $cuentaid == 2 or $cuentaid == 3 or $cuentaid == 4 or $cuentaid == 5) {
$caracter1 = $id[0];
}
if ($cuentaid == 2 or $cuentaid == 3 or $cuentaid == 4 or $cuentaid == 5) {
$caracter2 = $id[1];
}
if ($cuentaid == 3 or $cuentaid == 4 or $cuentaid == 5) {
$caracter3 = $id[2];
}
if ($cuentaid == 4 or $cuentaid == 5) {
$caracter4 = $id[3];
}
if ($cuentaid == 5) {
$caracter5 = $id[4];
}
 
if ($cuentaid == 5) {
$dir = "../../img/p/".$caracter1."/".$caracter2."/".$caracter3."/".$caracter4."/".$caracter5."/";
}
if ($cuentaid == 4) {
$dir = "../../img/p/".$caracter1."/".$caracter2."/".$caracter3."/".$caracter4."/";
}
if ($cuentaid == 3) {
$dir = "../../img/p/".$caracter1."/".$caracter2."/".$caracter3."/";
}
if ($cuentaid == 2) {
$dir = "../../img/p/".$caracter1."/".$caracter2."/";
}
if ($cuentaid == 1) {
$dir = "../../img/p/".$caracter1."/";
}
$ficheroseliminados= 0;
$handle = opendir($dir);
while ($file = readdir($handle))  { if (is_file($dir."".$id."-cart_default.jpg")) { unlink($dir."".$id."-cart_default.jpg"); } if (is_file($dir."".$id."-home_default.jpg")) { unlink($dir."".$id."-home_default.jpg"); } if (is_file($dir."".$id."-large_default.jpg")) { unlink($dir."".$id."-large_default.jpg"); } if (is_file($dir."".$id."-medium_default.jpg")) { unlink($dir."".$id."-medium_default.jpg"); } if (is_file($dir."".$id."-new_default.jpg")) { unlink($dir."".$id."-new_default.jpg"); } if (is_file($dir."".$id."-small_default.jpg")) { unlink($dir."".$id."-small_default.jpg"); } if (is_file($dir."".$id."-thickbox_default.jpg")) { unlink($dir."".$id."-thickbox_default.jpg"); } if (is_file($dir."".$id.".jpg")) { unlink($dir."".$id.".jpg"); } }
echo "<br/>Producto con referencia: <b> $ref </b> eliminado con exito<br/>";
}
}
}

Gracias anticipadas!
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
Imágen de perfil de xve

Problema con strpos

Publicado por xve (5516 intervenciones) el 01/12/2014 22:30:09
Hola Jorge, nos puedes mostrar los valores de las variables $section y $ref

Ha simple vista, parece que esta bien... pero no se puede probar...
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
Imágen de perfil de Jorge

Problema con strpos

Publicado por Jorge (42 intervenciones) el 01/12/2014 23:04:17
la variable $ref extrae estas referencias de la base de datos:

qpi3kj

en la variable $section se guarda todo el contenido de este archivo csv:

1qmxk3

Lo que pretendo hacer es que si $ref no se encuentra en $section ejecute varias cosas...
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
Imágen de perfil de xve

Problema con strpos

Publicado por xve (5516 intervenciones) el 02/12/2014 09:00:39
Gracias Jorge, pero lo que me gustaría, es que hicieras un
1
echo $section." - ".$ref."<br>";
en el código antes del condicionante, de esta manera, veremos que los datos lleguen bien.
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
Imágen de perfil de Jorge

Problema con strpos

Publicado por Jorge (42 intervenciones) el 02/12/2014 12:20:29
Gracias xve al hacer lo que me indicas he visto que la variable $section estaba vacía. Fue un despiste mio ya que descuide poner file_get_contents donde marco en negrita... muchas gracias

1
2
3
4
5
6
7
if (false !== strpos($url,'cron_10')) {
    $descargar = file_get_contents("$url_csv");
        file_put_contents("../csv-temp/productos.csv", $descargar);
       $section = file_get_contents('../csv-temp/productos.csv');
} else {
   $section = file_get_contents('../csv-temp/productos.csv');
}
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