Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/03/2010, 09:39
glegan
 
Fecha de Ingreso: marzo-2010
Mensajes: 5
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta Tablas, MySQL y Eliminar Registros

Tengo un problema en un proyecto que me encuentro desarrollando, les explico brevemente espero que me puedan ayudar:

La pagina con la que estoy trabajando se divide hasta el momento en tres secciones y las tres funcionan correctamente:

1. Carga de datos de una tabla de mysql apoyado de la función rellena_linea, esta completa algunos list y al seleccionar algun valor rellena otros textfields

2. Almacenamiento de datos apoyados de la funcion agrega_linea (esta se ejecuta desde un boton que guada los valores de la funcion anterior), esta ultima ademas de almacenar en una tabla de mysql muestra los datos resguardados en una tabla que se pinta dentro de la misma funcion.

Todo esto funciona muy bien el tema esta que ahora lo que requiero hacer es poder eliminar desde la tabla que esta mostrando los datos algun registro guardado sin que se recargue la pagina el problema esta en que no se como debo crear esta ultima funcion debido a que la variable que recibirá no siempre sera la misma.

Les coloco algo de codigo para que loo entiendan un poco mejor:

no tiene caso mostrar como cargo los datos a los textfield y eso les mostrare desde que resguardo en la bd y muestro la tabla en la que necesito agregar la funcion de eliminar registro:

Código PHP:
//esta es la funcion que guarda en la bd y muestra la tabla
      
function validafphp3($ajax_extrae_clave ,$ajax_txt_no_oc$ajax_sel_prov$ajax_txt_clave_linea$ajax_cantidad_linea$ajax_precio_linea$ajax_descuentox_linea$ajax_fecha_oc)
    {
         if(
$ajax_txt_no_oc!=""// Lo primero que hacemos es crear el numero de orden de compra
            
{
                
$connection mysql_connect("localhost","xxxxx","xxxxx") or die ("Error de conexión");
                
$db mysql_select_db("u73937_cstore"$connection) or die ("Unable to get requested database");
                
$res_existe mysql_query("SELECT * FROM no_oc WHERE desc_oc = '$ajax_txt_no_oc' AND tienda_oc = '$ajax_extrae_clave'");
                
$total_reg_existe mysql_num_rows($res_existe);
                if(!
$total_reg_existe//SI NO EXISTE LA OC LA CREAMOS
                    
{
                        
//CALCULO CLAVE DE ORDEN DE COMPRA
                        
$i=0;
                        
$clv_oc"";
                        
srand((double)microtime()*1000000);
                        
$block1 "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
                        
$block1 .= "abcdefghijklmnopqrstuvwxyz";
                        
$block1 .= "0123456789";
                        for(
$i 0$i 20$i++)
                            {
                                
$clv_oc .= substr($block1,(rand()%(strlen($block1))), 1);
                            
}
                        
//FIN DEL CALCULO
                        
$query1="INSERT INTO no_oc VALUES (NULL,'$clv_oc','$ajax_txt_no_oc','$ajax_extrae_clave')";
                        
mysql_query($query1) or die (mysql_error());
                    } 
//CERRAMOS if(!$total_reg_existe)
                
else //SI YA EXISTE LO UNICO QUE HAGO ES TRAERME LA CLAVE DE LA ORDEN DE COMPRA
                    
{
                        while(
$coc=mysql_fetch_array($res_existe))
                            {
                                
$clv_oc$coc["clave_oc"];
                            }
                    } 
//CIERRO ELSE QUE TRAJO EL NUMERO DE LA ORDEN DE COMPRA
            
//cierra if($ajax_txt_no_oc!="")
            
        
if($ajax_txt_clave_linea!=""// El segundo paso es completar el detalle de la linea agregada
            
{
                
//COMO EL TOTAL SE CALCULA DENTRO DE OTRA FUNCION LO CALCULO NUEVAMENTE
                
$total=0;
                
$tot_des = (($ajax_cantidad_linea $ajax_precio_linea)*$ajax_descuentox_linea)/100;
                
$total = (($ajax_cantidad_linea $ajax_precio_linea)-$tot_des);
                
//TERMINO DE CALCULAR EL TOTAL DE LA LINEA
                
                
$query_addlinea="INSERT INTO detalle_oc VALUES (NULL,'$clv_oc','$ajax_txt_clave_linea','$ajax_cantidad_linea','$ajax_precio_linea','$ajax_descuentox_linea','$total')";
                
mysql_query($query_addlinea) or die (mysql_error());
            } 
// Cierra el if($ajax_txt_clave_linea!="")
            
        
if($ajax_sel_prov!=""//El tercer paso es completar los datos generales de la orden de compra
            
{
                
//NECESITO CONOCER EL TOTAL ACTUAL DE LA ORDEN DE COMPRA
                
$query_cal_totoc mysql_query("SELECT * FROM detalle_oc WHERE clave_oc = '$clv_oc'");
                
$total_cal_totoc mysql_num_rows($query_cal_totoc);
                
$gran_total=0;
                if(
$total_cal_totoc)
                    {
                        while(
$cal_totoc=mysql_fetch_array($query_cal_totoc))
                            {
                                
$gran_total$gran_total+$cal_totoc["total_linea"];
                            }
//cierro While
                    
//ACA YA CONOZCO EL TOTAL DE LA ORDEN DE COMPRA
                    
                //SI YA EXISTE LA ORDEN DE COMPRA LO UNICO QUE SE DEBE HACER ES ACTUALIZAR EL GRAN TOTAL
                
$xquery_existe_oc mysql_query("SELECT * FROM o_compra WHERE clave_oc = '$clv_oc'");
                
$xtotal_existe_oc mysql_num_rows($xquery_existe_oc);
                if(!
$xtotal_existe_oc)
                    {
                        
$ofechaalta date("Y/m/d");
                        
$query_ocgen="INSERT INTO o_compra VALUES (NULL,'$clv_oc','$ajax_sel_prov','$ofechaalta','$ajax_fecha_oc','1','$gran_total')";
                        
mysql_query($query_ocgen) or die (mysql_error());
                    } 
//ACA ACTUALICE EL GRAN TOTAL UNICAMENTE
                    
                
else //ACA CREO EL REGISTRO DE LA ORDEN DE LA COMPRA SI NO EXISTE TODAVIA
                    
{
                    
$up_gran_total_query "UPDATE o_compra SET total_oc='$gran_total' WHERE clave_oc = '$clv_oc'";
                    
mysql_query($up_gran_total_query) or die (mysql_error());
                    }
            } 
// Cierra el if($ajax_sel_prov!="") CON LO QUE YA TENGO REGISTRADOS TODOS LOS DATOS DE LA OC
        
        //NECESITO CONOCER EL NOMBRE DEL PROVEEDOR
        
$xquery_prov_oc mysql_query("SELECT * FROM proveedores WHERE clave_proveedor = '$ajax_sel_prov'");
        
$xtotal_prov_oc mysql_num_rows($xquery_prov_oc);
        if(
$xtotal_prov_oc)
            {
                while(
$cal_prov=mysql_fetch_array($xquery_prov_oc))
                            {
                                
$owhoprove$cal_prov["rs_prove"];
                            }
//cierro While
            
}
        
$oel_provedor "<span class='subseccion'>".$owhoprove."</span><input name='sel_prov' id='sel_prov' type='hidden' value='".$ajax_sel_prov."' />";
        
//Y MOSTRAR LA VISTA PREVIA DE LA OC.
        
if($ajax_vistaprevia=="")
            {
                
$ajax_vistaprevia"<span class='formulario'><img src='images/bullet.jpg' width='17' height='15' />VISTA PREVIA DE LAS LINEAS</span><br /><table width='100%' border='0' cellspacing='0' cellpadding='0'><tr><td class='toptablas'>SKU O GTIN</td><td class='toptablas'>DESCRIPCI&Oacute;N</td><td class='toptablas'>PRECIO UNITARIO</td><td class='toptablas'>CANTIDAD</td>
    <td class='toptablas'>DESCUENTO</td><td class='toptablas'>TOTAL DE LA LINEA</td><td class='toptablas'>EDITAR</td><td class='toptablas'>ELIMINAR</td></tr>"
;
                
$fila "";

                 
$res_vista mysql_query("SELECT * FROM detalle_oc, inventarios  WHERE detalle_oc.clave_oc = '$clv_oc' AND detalle_oc.clave_inventario = inventarios.clave_inventario");

                
$total_vista mysql_num_rows($res_vista);
                if(
$total_vista)
                    {
                    while(
$ar_visita=mysql_fetch_array($res_vista))
                        {
                        
$fila="";


//AQUI ESTOY PINTANDO CADA FILA DE LA TABLA ESTAS FILAS SON LAS QUE NECESITO PODER ELIMINAR APOYADO DE OTRA FUNCION:


                        
$fila "<tr><td><div align='center'>".$ar_visita["gtin_inventario"]."</div></td><td><div align='center'>".$ar_visita["desc_inventario"]."</div></td><td><div align='center'>$ <span id='".$ar_visita["id_detalle"]."precio'>".number_format($ar_visita["precio_unitario"], 2'.'',')."</span></div></td><td><div align='center'><span id='".$ar_visita["id_detalle"]."cantidad'>".$ar_visita["cantidad_pedida"]."</span></div></td><td><div align='center'><span id='".$ar_visita["id_detalle"]."descuento'>".$ar_visita["descuento_oc"]."</span>%</div></td><td><div align='center'>$ <span id='".$ar_visita["id_detalle"]."total'>".number_format($ar_visita["total_linea"], 2'.'',')."</span></div></td><td><div align='center'><span id='".$ar_visita["id_detalle"]."boton'><img src='images/edit_btn.jpg' width='25' height='25' class='image' /></span></div></td><td><div align='center'><img src='images/delete-icon.jpg' width='25' height='25' class='image' /></div></td></tr>";
                        
$ajax_vistaprevia $ajax_vistaprevia.$fila;
                        }
//CIERRO WHILE ENCONTRE REGISTROS
                    //REQUERIMOS MOSTRAR EL TOTAL DE LA ORDEN DE COMPRA
                    
$res_vista_total mysql_query("SELECT * FROM o_compra WHERE clave_oc = '$clv_oc'");
                    
$total_vista mysql_num_rows($res_vista_total);
                    if(
$total_vista)
                        {
                            while(
$ar_visita_total=mysql_fetch_array($res_vista_total))
                                {
                                    
$ajax_vistaprevia $ajax_vistaprevia."<tr><td></td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td class='formulario'><div align='right'>TOTAL:</div></td><td><strong><div align='center'>$ ".number_format($ar_visita_total["total_oc"], 2'.'',')."</div></strong></td><td></td><td></td></tr><tr><td></td><td colspan='2'><div align='center'><a href='index_OC.php'><img src='images/icon-save.jpg' alt='Guardar' width='47' height='47' class='image' /></a></div></td><td colspan='2' class='formulario'><div align='center'><a href='index_OC.php?oc_cancelar=".$clv_oc."&estatus_borrar=3'><img src='images/not.png' alt='Cancelar' width='47' height='47' class='image' /></a></div></td><td></td><td></td></tr></table>";
                                }                        
                        }
                    }
//CIERRO IF EXISTE VISTA PREVIA
                
mysql_close($connection);//CIERRO LA CONEXION SQL
            
}//CIERRO IF VISTA PREVIA

        
$response = new xajaxResponse();
        
$response->assign('vista_previa_orden''innerHTML'$ajax_vistaprevia);
        return 
$response;

        } 
//funcion 
Muchas gracias por su ayuda!

Última edición por glegan; 09/03/2010 a las 11:34