Он не входит в решение if, внутри While

Последуй за следующим, я делаю update, введя счет поставщиков в компьютер, и кликнув в кнопке x, работает функция (он разместит ее ниже) функционирует хорошо, обновляет запас продуктов, введенных в компьютер со счетом отделения ту, которая ввела его в компьютер, но: Что происходит, если не существует этот продукт в этом отделении? хороший, я сделал if, который он подтверждал, что, если он не бросает результат, были введены продукты в отделении, и если бы они существовали, что обновлял запас каждого, но оно не функционирует, я думаю, что if болен. Я оставляю им мою функцию (равный она длинная... PD: таблица, - потому что только я скопировал while, что солитер pra q они являлись продуктами.):

  <?php 

   function ingresar_stock()

          {//consulta

            $id_if=$this->id_if;
            $id_di="";

    $sql="SELECT detalle_ingreso.id_di, detalle_ingreso.cantidad, detalle_ingreso.costo, productos.nombre_producto, 
            marcas.nombre_marca, ingreso_factura.id_if,ingreso_factura.id_suc, detalle_ingreso.codigo_producto, productos.precio_costo 
            FROM detalle_ingreso 
            INNER JOIN productos ON detalle_ingreso.codigo_producto = productos.codigo_producto
            INNER JOIN ingreso_factura ON detalle_ingreso.id_if = ingreso_factura.id_if 
            INNER JOIN marcas ON productos.id_marca = marcas.id_marca WHERE detalle_ingreso.id_if='$id_if'"; 

    $resultado=mysqli_query($this->conexion,$sql);
    $tabla="";


    while ($datos=mysqli_fetch_array($resultado))

    {               $codigo_producto=$datos["codigo_producto"];
                    $nombre_producto=$datos["nombre_producto"];
                    $nombre_marca=$datos["nombre_marca"];
                    $precio_costo=$datos["precio_costo"];
                    $cantidad=$datos["cantidad"];
                    $costo=$datos["costo"];
                    $id_di=$datos["id_di"];
                    $id_suc=$datos["id_suc"];

        $tabla.="<tr>

                    <td style='width: 15px; text-align: center'>$codigo_producto</td>
                    <td style='width: 190px; text-align: center'>$nombre_producto</td>
                    <td style='width: 20px; text-align: center'>$nombre_marca</td>
                    <td style='width: 20px; text-align: center'>$precio_costo</td>
                    <td style='width: 20px; text-align: center'>$cantidad</td>
                    <td style='width: 20px; text-align: center'>$costo</td>
                    <td style='width: 20px; text-align: center'><button    id_di='$id_di' class='btn btn-sm btn-default eliminar' >Eliminar<span class='glyphicon glyphicon-remove'></span></button></td>
                </tr>         <div class='col-md-2' style='top: 25px;'>";

            //--- Mi consulta, para verificar que no existe el producto en esa sucursal
            $sql_con="SELECT productos.codigo_producto , sucursales.id_suc
             FROM productos_sucursales
             INNER JOIN productos ON productos_sucursales.codigo_producto=productos.codigo_producto
             INNER JOIN sucursales ON productos_sucursales.id_suc=sucursales.id_suc
             WHERE productos_sucursales.id_suc='$id_suc' AND productos_sucursales.codigo_producto='$codigo_producto'";       
             $resultado_con=mysqli_query($this->conexion,$sql_con); 

             if($resultado_con==0){

                 $sql_insert="INSERT INTO productos_sucursales values('','$id_suc','$codigo_producto','$cantidad')";
         $resultado_insert=mysqli_query($this->conexion,$sql_insert);


             }

             else{

                 $sql2="UPDATE productos_sucursales
            SET stock_real=stock_real  + $cantidad
            WHERE codigo_producto=$codigo_producto AND id_suc=$id_suc";
        $resultado2=mysqli_query($this->conexion,$sql2);


              }



    }
    return $tabla;
}

   ?>
1
задан 09.12.2016, 00:09
4 ответа

Ты должен оставлять твой if

if(!$resultado_con){

}

, Так как он возвращает false, в случае когда не находит оказанные.

Мой ответ сходный с ответом @Error404, только, что моя избавляет от оценки == false, так как if оценивает оказанные booleanos следовательно, если ты оцениваешь !$resultado_con, ты ищешь результат в случае, если это будет false (пустота) если не, и приносит один object, который является результатом в случае, что твой query соответствовал, упадет в решение else

РЕДАКТИРОВАНИЕ

Попытайся так:

$rows = $resultado_con->num_rows;
if($rows == 0){
       //insert
}
1
ответ дан 24.11.2019, 12:13
  • 1
    но если я оставляю это таким, удваивается продукт – Kvothe_0077 09.12.2016, 01:06
  • 2
    Что возвращает тебе $ resultado_con, когда ты это печатаешь? – sioesi 09.12.2016, 01:12
  • 3
    он ничего не возвращает... – Kvothe_0077 09.12.2016, 01:15
  • 4
    Издайте! @CristhianOrellanaMuñ oz – sioesi 09.12.2016, 01:19
  • 5
    Nop, совсем не.... я думаю, что он не берет if....., но не, из-за которого.... – Kvothe_0077 09.12.2016, 01:47

Хорошие, ты подтвердил, что возвращает тебе query? никогда он не возвратит тебе 0, возврати один object или false если консультация провалилась. ты должен получать результат и относиться к этому, чтобы видеть, что он возвратил тебе, потом сделай проверку например кодом продукт.

if($resultado_con==0)
1
ответ дан 24.11.2019, 12:13

funciГіn mysqli_query, как покажи в documentaciГіn , возврати false, в случае когда ничего не возвращает. Следовательно, tendrГ-схвати, что менять твой if в:

if($resultado_con==false){
   //Código si es falso (si no hay registros)
}else{
  //Código si es verdadero (hay registros)
}
1
ответ дан 24.11.2019, 12:13
  • 1
    уже prove, но оно не функционирует... – Kvothe_0077 09.12.2016, 01:10
  • 2
    @CristhianOrellanaMuñ oz ¿ Те да algú n ошибка? Доказательство печатая стоимость $ resultado_con, чтобы видеть, что он возвращает тебя. – Francisco Romero 09.12.2016, 01:10

1), Хотя это будет проект доказательства, Предотвращает, что кто-то ты головной боли и потерь денег убегая неудар в лунку (даже, если ты твой собственный quine, он это производит).

SQL Injection

Относительно вопроса, в общем я предотвращаю себя реализовывать консультацию, чтобы проверять, находится ли статья в базе данных используя то, что я называю upsert. (Одинокое функционирует, если у тебя есть первичные определенные ключи в общем, я это использую с pk сочетаемые).

query остается таким образом:

INSERT INTO table (id_prod, id_suc, value1, value2, value3)
VALUES (1, 2, '1','2','3')
ON DUPLICATE KEY UPDATE
table.value1 = VALUES(table.value1),
table.value2 = VALUES(table.value2);

Таким образом только ты должен поддерживать query, для этого типа случаев, который манипулирует обоими, insert и update.

, Если он формирует этот реализации вещей, не приспосабливается к твоему стилю, как уже они сказали остальной дебет менять твое утверждение для того, чтобы он работал санкционируя, если результат, возвращенный консультацией - false.

if($resultado_con == false) { doSomething(); }

0
ответ дан 24.11.2019, 12:13
  • 1
    Я это сделал, но оно не функционирует.... нас вводят данные, – Kvothe_0077 09.12.2016, 01:11

Теги

Похожие вопросы