PHP - Bucle con while

 
Vista:

Bucle con while

Publicado por Alejandro (1 intervención) el 03/11/2018 18:53:20
Hola a todos,

Estoy intentado ejecutar un código que cuando hay un articulo de unos determinados codigos de barras haga el insert en la bbdd y envie una notificacion por pushover. Todo me funciona bien salvo cuando hay mas de un articulo que cumple las condiciones, entonces ejecuta el envio del primero y corta sin embargo en la bbdd si hace todas las inserciones tanto si hay varios del primer bloque como si hay del primero y del segundo.

Estoy perdido. Gracias por cualquier ayuda

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
$resultorder = mysql_query("SELECT * FROM order_detail WHERE id_order='$pedido' ORDER BY id_order_detail ASC");
while ($roworder=mysql_fetch_array($resultorder))
{
    $ean13 = $roworder["product_ean13"];
    $unidades = $roworder["product_quantity"];
    {
        if ($ean13 >= 9332000001 AND $ean13 <= 9332999999)
        {
            $resultorden = mysql_query("SELECT * FROM produccion_productos WHERE codebar = '$ean13'");
            $roworden=mysql_fetch_array($resultorden);
            $id = $roworden["id"];
            //$update = mysql_query("INSERT INTO produccion SET id_producto='$id', fecha='$hoy', destino='AUTO', estado='pendiente', activo='1'");
            //$update = mysql_query("INSERT INTO produccion_ventas SET id_producto='$id', fecha='$hoy', cliente='$cliente', pedido='$pedido'");
            $url="pop_fab_notificacion_auto.php?id_producto=$id&cliente=$cliente&pedido=$pedido&unidades=$unidades";
            echo "<script language='javascript'>window.location='$url';</script>";
        }
        elseif ($ean13 >= 2033200001 AND $ean13 <= 2033299999)
        {
            $resultorden = mysql_query("SELECT * FROM dbt_produccion_productos WHERE codebar = '$ean13'");
            $roworden=mysql_fetch_array($resultorden);
            $id = $roworden["id"];
            //$update = mysql_query("INSERT INTO produccion SET id_producto='$id', fecha='$hoy', destino='AUTO', estado='pendiente', activo='1'");
            //$update = mysql_query("INSERT INTO produccion_ventas SET id_producto='$id', fecha='$hoy', cliente='$cliente', pedido='$pedido'");
            $url="pop_fab_notificacion_auto.php?id_producto=$id&cliente=$cliente&pedido=$pedido&unidades=$unidades";
            echo "<script language='javascript'>window.location='$url';</script>";
        }
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 Leonardo Daniel A.
Val: 50
Ha disminuido su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

Bucle con while

Publicado por Leonardo Daniel A. (33 intervenciones) el 03/11/2018 19:14:20
Hola, pues de php solo lo use un poco y no me gusto, pero como se usan llaves igual que en C#... vi unos errores , tenia una llave de apertura que no iba { y te faltaba la llave de termino del while } No se si ese sea el problema

y aqui hay un boton que dice </> que sirve para que te aparezeca el codigo formateado, lo tuve que pegar en una pagina de formatear codigo http://phpbeautifier.com/

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
<?php
$resultorder = mysql_query("SELECT * FROM order_detail WHERE id_order='$pedido' ORDER BY id_order_detail ASC");
 
while ($roworder = mysql_fetch_array($resultorder))
{
    $ean13 = $roworder["product_ean13"];
    $unidades = $roworder["product_quantity"];
 
    // Aqui tenias una llave de apertura que no va  {
    if ($ean13 >= 9332000001 AND $ean13 <= 9332999999)
    {
        $resultorden = mysql_query("SELECT * FROM produccion_productos WHERE codebar = '$ean13'");
        $roworden = mysql_fetch_array($resultorden);
        $id = $roworden["id"];
 
        // $update = mysql_query("INSERT INTO produccion SET id_producto='$id', fecha='$hoy', destino='AUTO', estado='pendiente', activo='1'");
        // $update = mysql_query("INSERT INTO produccion_ventas SET id_producto='$id', fecha='$hoy', cliente='$cliente', pedido='$pedido'");
 
        $url = "pop_fab_notificacion_auto.php?id_producto=$id&cliente=$cliente&pedido=$pedido&unidades=$unidades";
        echo "<script language='javascript'>window.location='$url';</script>";
    }
    elseif ($ean13 >= 2033200001 AND $ean13 <= 2033299999)
    {
        $resultorden = mysql_query("SELECT * FROM dbt_produccion_productos WHERE codebar = '$ean13'");
        $roworden = mysql_fetch_array($resultorden);
        $id = $roworden["id"];
 
        // $update = mysql_query("INSERT INTO produccion SET id_producto='$id', fecha='$hoy', destino='AUTO', estado='pendiente', activo='1'");
        // $update = mysql_query("INSERT INTO produccion_ventas SET id_producto='$id', fecha='$hoy', cliente='$cliente', pedido='$pedido'");
 
        $url = "pop_fab_notificacion_auto.php?id_producto=$id&cliente=$cliente&pedido=$pedido&unidades=$unidades";
        echo "<script language='javascript'>window.location='$url';</script>";
    }
}
// ademas te faltaba la llave de cerrar el while
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