Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-02-2007
analondo analondo is offline
Registrado
 
Registrado: feb 2007
Posts: 6
Poder: 0
analondo Va por buen camino
Red face Insert y Update al mismo tiempo dentro de php

Buenas, estoy tratando de realizar un update despues de insertar un componente. El codigo es
Código PHP:
if ($_POST['Origen']=="add")
{        
        
$Venta=$_POST['Venta'];
        
$Fecha=$_POST['DateIni'];
        
$Producto=$_POST["Producto"];        
        
$Factura=$_POST["Factura"];
        
$Manguera=$_POST["Manguera"];
        
$Surtidor=$_POST["Surtidor"];
        
$Islero=$_POST['Islero'];        
        
$PPG=$_POST["PPG"];
        
$Cantidad=$_POST["Cantidad"];
        
$Valor=$_POST["Valor"];
        
$Empresa=$_POST['Empresa']; 
        
$Placa=$_POST['Placa'];
        
$Cantidad=$Cantidad*1000;
        
$sth1 ibase_query("SELECT * FROM MANGUERAS where ID_Manguera=$Manguera");
        while (
$row1 ibase_fetch_row($sth1))
            {
                
$Manguera=$row1[0];
                
$Surtidor=$row1[2];
            }

        if((
$Placa!='')and($Empresa!='Panel'))
        {
            
$sth ibase_query("INSERT INTO VENTAS (ID_VENTA,FECHA,PRODUCTO,CANTIDAD,ID_MANGUERA,ID_SURTIDOR,ID_ISLERO,VALOR,EMPRESA,PLACA, NO_FACTURA,PPG,OBSERVACIONES) 
                            VALUES(GEN_ID(GEN_ID_VENTAS,1),'
$Fecha','$Producto','$Cantidad','$Manguera','$Surtidor','$Islero','$Valor','$Empresa','$Placa','$Factura','$PPG','')");
            
ibase_commit();
            
mensage(12345,'commit-');
                            
        }
        else if    ((
$Placa!='')and($Empresa=='Panel'))
        {
            
$sth ibase_query("INSERT INTO VENTAS (ID_VENTA,FECHA,PRODUCTO,CANTIDAD,ID_MANGUERA,ID_SURTIDOR,ID_ISLERO,VALOR,EMPRESA,PLACA, NO_FACTURA,PPG,OBSERVACIONES) 
                            VALUES(GEN_ID(GEN_ID_VENTAS,1),'
$Fecha','$Producto','$Cantidad','$Manguera','$Surtidor','$Islero','$Valor','Panel','P_$Placa','$Factura','$PPG','')");
            
ibase_commit();
            
mensage(12345,'commit-');
        }
        else
        {
            
$sth ibase_query("INSERT INTO VENTAS (ID_VENTA,FECHA,PRODUCTO,CANTIDAD,ID_MANGUERA,ID_SURTIDOR,ID_ISLERO,VALOR,EMPRESA,PLACA, NO_FACTURA,PPG,OBSERVACIONES) 
                            VALUES(GEN_ID(GEN_ID_VENTAS,1),'
$Fecha','$Producto','$Cantidad','$Manguera','$Surtidor','$Islero','$Valor','Personal','','$Factura','$PPG','')");
            
ibase_commit();
            
mensage(12345,'commit-');
        }
        
        
        
$sth2 ibase_query("select PROGRAMA, UNIDADESXPUNTOS, TIPO_PUNTOS from EMPRESAS where ID_EMPRESA=$Empresa");
        while(
$row2 ibase_fetch_row($sth2))
        {
            echo 
"<h1>HOLA!!!</h1>";
            
//Si es Programa de Fidelizacion
            
if($row2[0]==0)
            {
                if(
$row[2]==1)
                    
$puntos=ceil($Valor/$row[1]);
                else
                    
$puntos=ceil($Cantidad/$row[1]);
                
                
$sth3ibase_query("select EMPRESA,PUNTOS from VEHICULOS where PLACA=$Placa");
                while(
$row3 ibase_fetch_row($sth3))
                {    
                    if(
$row3[0]==$Empresa)
                    {
                        
$puntoVeh=$row3[1];
                        
$puntoVeh=$puntoVeh+$puntos;
                        
$sth4=ibase_query("update VEHICULOS set PUNTOS=$puntoVeh where PLACA=$Placa");
                        
ibase_commit();
                    }
                    
                    else
                        echo 
"alert('La Placa del vehiculo no pertenece al plan señalado')";
                    
                }
            }
        
        
        }
        
        

No se que tengo malo que no me funciona, me esta insertando el campo pero no me esta haciendo el query despues, ni siquiera $sth2 = ibase_query("select PROGRAMA, UNIDADESXPUNTOS, TIPO_PUNTOS from EMPRESAS where ID_EMPRESA=$Empresa");. Cualquier ayuda se los agradeceria enormemente

//Editado por jhonny para colocar etiquetas php

Última edición por jhonny fecha: 20-02-2007 a las 18:03:09.
Responder Con Cita
  #2  
Antiguo 20-02-2007
fdelamo fdelamo is offline
Miembro
 
Registrado: oct 2005
Ubicación: Sotoca de Tajo - Guadalajara (ESP)
Posts: 86
Poder: 19
fdelamo Va por buen camino
Cuando dices que no funciona, ¿da algun error? ¿o es que no devuelve y actualiza nada?

(Al estar en este foro supongo que utilizas Interbase/Firebird)
Si es que no actualiza nada, ¿podría ser que la query del insert, la del select y la del update estén en distintas transacciones?, si es así, al hacer el select y el update, para sus respectivas transacciones no existe el registro, y por eso no lo recupera.

No se si será de esto, yo no he usado PHP, y no se como gestiona las transacciones.

Un saludo
__________________
Sotoca Web

Última edición por fdelamo fecha: 20-02-2007 a las 22:18:57.
Responder Con Cita
  #3  
Antiguo 20-02-2007
jgutti jgutti is offline
Miembro
 
Registrado: may 2003
Posts: 189
Poder: 21
jgutti Va por buen camino
analondo, yo utilizo el sgte codigo y da buenos resultados para insertar es:
$sql="INSERT INTO orden(codigo,nombre,obs)
VALUES($codigo,'$nombre','$obs')";
$result = ibase_query($sql);
if (ibase_fetch_row()==1)
{
$texto = "No se pudo grabar el encabezado, por favor intente nuevamente";
print"
<script language=\"JavaScript\" type=\"text/JavaScript\">
alert('$texto');
</script>";
}

Update:
$sql="UPDATE orden SET nombre='$nombre',obs='$obs' WHERE
codigo=$codigo";
$result = ibase_query($sql);
if (ibase_affected_rows()==0)
{ $texto = "No actualizao";
print"
<script language=\"JavaScript\" type=\"text/JavaScript\">
alert('$texto');
</script>";
}

select:

$sql = "SELECT codigo,nombre,obs FROM orden WHERE codigo = $codigo";
$result1 = ibase_query($sql);
while ($myrow = ibase_fetch_row($result1))
{
}
Responder Con Cita
  #4  
Antiguo 20-02-2007
analondo analondo is offline
Registrado
 
Registrado: feb 2007
Posts: 6
Poder: 0
analondo Va por buen camino
Muchas gracias por la ayuda, me sirvio prefecto... (K)
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
funciones Update e Insert usando libmysql.dll Pook Conexión con bases de datos 3 14-12-2006 22:56:37
Trigger Before (Insert,update,delete)? estebanx MS SQL Server 2 25-05-2006 16:58:19
Problema con Insert y Update en ADOQuery Moises22 SQL 15 11-01-2006 08:57:13
problemas con el insert y el update tiagor64 SQL 5 16-02-2005 18:46:09
Como crear una sentencia SQL (Insert, update y delete) sitrico Conexión con bases de datos 1 14-10-2004 01:02:42


La franja horaria es GMT +2. Ahora son las 13:04:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi