Foros del Web » Programando para Internet » PHP »

PHP OO Validacion con php

Estas en el tema de Validacion con php en el foro de PHP en Foros del Web. hola primero que todo me disculpo no se si sea acá donde debo preguntar. estoy realizando un proyecto de graduación es un pequeño aplicativo hecho ...
  #1 (permalink)  
Antiguo 18/08/2015, 15:01
Avatar de fernando_93  
Fecha de Ingreso: agosto-2015
Ubicación: bogota
Mensajes: 2
Antigüedad: 8 años, 8 meses
Puntos: 0
Mensaje Validacion con php

hola
primero que todo me disculpo no se si sea acá donde debo preguntar.

estoy realizando un proyecto de graduación es un pequeño aplicativo hecho en php
tengo un archivo llamado registrar_venta.php que busca registrar una venta en la base de datos y restar lo que se vende a lo que ya se encuentra en la base . eso ya esta lo que no logro hacer es validar que no me deje registrar un valor mayor o igual a 0 al que hay en la base de datos
agradezco sus consejos ..

Código PHP:
<?php
include "conexion.php";
$conx = new Conexion;
$conx->AbrirConexion();
/*los datos que se van a ingresar ala base de datos*/
$fecha $_GET['fecha'];
$Matriz =$_GET['Matriz'];

    
$Matriz2 explode(',',$Matriz); // nueva matriz
    
$tamMatriz2count($Matriz2); // tamaño de la Matriz2
    
$cantMatriz2 $tamMatriz2/8// cantidad de la Matriz2
    //var_dump("<br><div align='center'>".$tamMatriz2." cant : ".$cantMatriz2."<div>");
    
$datos = array();
    
$cont=0;
    for (
$j=0$j <$cantMatriz2 $j++) {
        for (
$i=0$i <= 7$i++) {
            
$cont++;
            
/*$x = 1; $listo = $cont-$x;*/  //print("<div>Matriz2 = ".$Matriz2[($cont-1)]." datos = ".$datos[$j][$i]." Posicion = ".($cont-1)." columna : ".$j." - ".$i."</div>");
            
$datos[$j][$i]=$Matriz2[($cont-1)];    
        }
    }
        
$insertDB mysql_query("INSERT INTO `venta` (`Ve_Us_CodigoUsuario`, `Ve_FechaVenta`)
                            VALUES (1, '$fecha')"
);
        
$consultaId mysql_query("SELECT MAX(`Ve_IdVenta`) AS id FROM venta");
        if (
$row mysql_fetch_row($consultaId)) {$idventa trim($row[0]);}        
        for (
$j=0$j <$cantMatriz2 $j++) {
            for (
$i=1$i 2$i++) {
                
$DeVen_De_IdDetalle $datos[$j][($i-1)];
                
$DeVen_Cantidad $datos[$j][($i+5)];
                
$DeVen_Precio $datos[$j][($i+6)];
                              
// alert('$DeVen_Cantidad');
//************************************************************************************************************
        
$validacionCantidad mysql_query("SELECT De_Cantidad_Existente_Stock FROM detalle dt, detalle_venta dv WHERE dt.De_IdDetalle = '$DeVen_De_IdDetalle' AND dv.DeVen_Ve_IdVenta = '$idventa' AND dt.De_IdDetalle = dv.DeVen_De_IdDetalle");
        
$cantidadStock=mysql_fetch_array($validacionCantidad);
        
$totalCantidad=$cantidadStock["De_Cantidad_Existente_Stock"];
        
//***********************************************************************************************************
//_______________________________________________________________________________________________________________

//if ($totalCantidad < $DeVen_Cantidad or $totalCantidad == 0) {
              //que haga el insert y la consult
    //print"NO HAY SUFICIENTE CANTIDAD EN STOCK DE ESTE PRODUCTO :".$totalCantidad;      
         //}else{           
              
$insertDBVenta mysql_query("INSERT INTO `detalle_venta` (`DeVen_De_IdDetalle` ,`DeVen_Ve_IdVenta` ,`DeVen_Cantidad` ,`DeVen__ValorUnidad` )
 VALUES ('$DeVen_De_IdDetalle',  '$idventa',  '$DeVen_Cantidad',  '$DeVen_Precio')"
);        
//_______________________________________________________________________________________________________________
if($insertDBVenta==true){
                            
$consultacant mysql_query("SELECT De_Cantidad_Existente_Stock FROM detalle dt, detalle_venta dv WHERE dt.De_IdDetalle = '$DeVen_De_IdDetalle' AND dv.DeVen_Ve_IdVenta = '$idventa' AND dt.De_IdDetalle = dv.DeVen_De_IdDetalle"); //consulta la cantidad que hay delproducto que se intenta vender
                            
if ($row mysql_fetch_row($consultacant)) {$retorno trim($row[0]);}
                                if(
$consultacant==true){
                                        
$totalV $retorno-$DeVen_Cantidad// toma las cantida ingresada y la que esta en la DB y la  resta
                                        
$insertDB mysql_query("UPDATE detalle SET De_Cantidad_Existente_Stock = '$totalV' WHERE De_IdDetalle = '$DeVen_De_IdDetalle'");
                                                if(
$insertDB==true){
                                                    print 
"<br><div align='center'><img class='chulito' src='views/layout/default/img/si.png' /></div>";
                                                    
//header("Refresh: 30; URL='detalles_compra.php'");
                                                
}else{
                                                    print 
"<br><div align='center'><img class='chulito' src='views/layout/default/img/noAplica.png' /></div>";
                                                }
                                }else{
                                    print 
"<br><div align='center' style='color: red;'>No Sé consulto detalles</div>";
                                }
                        }else{
                        print 
"<br><div align='center' style='color: red;'>No Sé A Podido Registrar venta En La Fila N° :".($j+1)."</div>";
                    }
         
// }
               
            
}
        }    
    
?>
hay un if en comentario que es con el que estoy tratando de validar pero no se si esta bien.


Código PHP:
if ($totalCantidad $DeVen_Cantidad or $totalCantidad == 0) {


gracias por su ayuda.
  #2 (permalink)  
Antiguo 18/08/2015, 15:08
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Validacion con php

Supongo que la condición se puede hacer más simple:

Código PHP:
Ver original
  1. if (($totalCantidad - $DeVen_Cantidad )<0) {  
  2. //si la existencia menos la compra es menor a cero mostrar error
  3.  
  4. }

Si tienes problemas con la condición, es necesario que depures para saber qué valores tienes al momento de hacer la validación.
  #3 (permalink)  
Antiguo 18/08/2015, 16:03
Avatar de fernando_93  
Fecha de Ingreso: agosto-2015
Ubicación: bogota
Mensajes: 2
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Validacion con php

lo he colocado asi:

Código PHP:
Ver original
  1. if (($totalCantidad - $DeVen_Cantidad )<=0) {  
  2.         //si la existencia menos la compra es menor a cero mostrar error
  3.         echo "NO HAY SUFICIENTE CANTIDAD DE ESTE PRODUCTO EN STOCK";
  4.          }
  5.          else{
  6. $insertDBVenta = mysql_query("INSERT INTO `detalle_venta` (`DeVen_De_IdDetalle` ,`DeVen_Ve_IdVenta` ,`DeVen_Cantidad` ,`DeVen__ValorUnidad` )
  7. VALUES ('$DeVen_De_IdDetalle',  '$idventa',  '$DeVen_Cantidad',  '$DeVen_Precio')");        
  8. //_______________________________________________________________________________________________________________
  9. if($insertDBVenta==true){
  10. $consultacant = mysql_query("SELECT De_Cantidad_Existente_Stock FROM detalle dt, detalle_venta dv WHERE dt.De_IdDetalle = '$DeVen_De_IdDetalle' AND dv.DeVen_Ve_IdVenta = '$idventa' AND dt.De_IdDetalle = dv.DeVen_De_IdDetalle"); //consulta la cantidad que hay delproducto que se intenta vender
  11.         if ($row = mysql_fetch_row($consultacant)) {$retorno = trim($row[0]);}
  12.         if($consultacant==true){
  13.            $totalV = $retorno-$DeVen_Cantidad; // toma las cantida ingresada y la que esta en la DB y la  resta
  14.         $insertDB = mysql_query("UPDATE detalle SET De_Cantidad_Existente_Stock = '$totalV' WHERE De_IdDetalle = '$DeVen_De_IdDetalle'");
  15.            if($insertDB==true){
  16.             print "<br><div align='center'><img class='chulito' src='views/layout/default/img/si.png' /></div>";
  17.                     //header("Refresh: 30; URL='detalles_compra.php'");
  18.             }else{
  19.                 print "<br><div align='center'><img class='chulito' src='views/layout/default/img/noAplica.png' /></div>";
  20.                }
  21.                                   }else{
  22.                                  print "<br><div align='center' style='color: red;'>No Sé consulto detalles</div>";
  23.                                 }
  24.                         }else{
  25.                         print "<br><div align='center' style='color: red;'>No Sé A Podido Registrar venta En La Fila N° :".($j+1)."</div>";
  26.                     }
  27.          
  28.          }

y esta es la consulta que busca la cantidad actual en stock

Código PHP:
Ver original
  1. $validacionCantidad = mysql_query("SELECT De_Cantidad_Existente_Stock FROM detalle dt, detalle_venta dv WHERE dt.De_IdDetalle = '$DeVen_De_IdDetalle' AND dv.DeVen_Ve_IdVenta = '$idventa' AND dt.De_IdDetalle = dv.DeVen_De_IdDetalle");
  2.         $cantidadStock=mysql_fetch_array($validacionCantidad);
  3.         $totalCantidad=$cantidadStock["De_Cantidad_Existente_Stock"];


y al ejecutar el código no me toma la condición .
si hay 100 en stock y registro en venta 50 sale el mensaje de error y no resta y si ingreso 101 a vender pasa lo mismo

Etiquetas: php+base, php+base+de+datos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:59.