Foros del Web » Programando para Internet » PHP »

Retener El Valor De Una Consulta

Estas en el tema de Retener El Valor De Una Consulta en el foro de PHP en Foros del Web. HOLA, TENGO UN PROBLEMA, TENGO UNA INTERFAZ DONDE QUIERO HACER ALTAS, ACTUALIZACIONES Y BORRADOS, PARA GUARDAR NO TENGO PROBLEMA NI PARA LAS BUSQUEDAS, PERO CUANDO ...
  #1 (permalink)  
Antiguo 23/11/2004, 11:18
 
Fecha de Ingreso: noviembre-2004
Ubicación: Oaxaca, Mexico
Mensajes: 97
Antigüedad: 19 años, 5 meses
Puntos: 0
Retener El Valor De Una Consulta

HOLA, TENGO UN PROBLEMA, TENGO UNA INTERFAZ DONDE QUIERO HACER ALTAS, ACTUALIZACIONES Y BORRADOS, PARA GUARDAR NO TENGO PROBLEMA NI PARA LAS BUSQUEDAS, PERO CUANDO QUIERO ACTUALIZAR LOS CAMBIOS ES DONDE ENTRO EN ELLOS, PARA ACTUALIZAR TENGO PRIMERO QUE BUSCAR EL REGISTRO, LOS CAMPOS LOS PASO A OTROS CAMPOS EN DONDE EL USUARIO PUEDE CAMBIARLOS Y GUARDAR LOS CAMBIOS, PERO CUANDO HAGO LA ACTUALIZACIÓN RESULTA QUE YA NO TENGO LOS VALORES DE LA BUSQUEDA ASI QUE YA NO PUEDO BUSCAR EL REGISTRO PARA ACTUALIZARLO, Y NO PUEDO USAR LOS VALORES QUE LE PASO A LOS OTROS CAMPOS POR QUE YA HABRAN CAMBIADO Y TAMPOCO ENCONTRARA EL REGISTRO, INTENTE GUARDAR LOS VALORES EN OTRAS VARIABLES EN LA BUSQUEDA PARA QUE ME LOS ALMACENARA PERO CUANDO SALE DE ESA CONDICIÓN IF LOS VALORES DESAPARECEN, ESPERO ME AYUDEN, PONGO EL SCRIPT:


if ($btn=='Buscar')
{
$qry=mysql_query("select * from reporte_rplech where cve_area_resp='DK09A' and anio='".$baf."' and mes='".$bmf."' and cve_pob='".$bcp."' and cve_ruta='".$bcr."'",$atcon);
if (mysql_num_rows($qry)==0)
{
print "<script>alert('El registro no se encuentra ')</script>";
}
else {
$row = mysql_fetch_array($qry);
$FechaInicial=$row["fecha"];
$pob=$row["cve_pob"];
$acr=$row["cve_ruta"];
$arpe=$row["rpe_asig"];
$anu=$row["num_usuarios"];
$bcr2=$bcr;// GUARDO EL VALOR DE $bcr EN $bcr" PARA USARLO DESPUES
// $qrx=mysql_query("select * from reporte_rplech where cve_area_resp='DK09A' and fecha='".$FechaInicial."' and cve_pob='".$pob."' and cve_ruta='".$acr."'",$atcon);
//$rowx=mysql_fetch_array($qrx); TAMBIEN INTENTE HACER UNA CONSULTA NUEVA
print "<script>alert('".$bcr2." ')</script>"; IMPRIMO EL VALOR PARA VER SI LO GUARDA, ACA SI LO GUARDA
}
}if ($btn=='Actualizar')
{
$a=substr($FechaInicial,0,4);
$m=substr($FechaInicial,5,2);
print "<script>alert('".$bcr2." ')</script>"; ACA YA NO LO LLEVA
$qry= mysql_query("update reporte_rplech set cve_area_resp='DK09A', fecha='".$FechaInicial."',cve_pob='".$pob."',cve_r uta='".$acr."',rpe_asig='".$arpe."',num_usuarios=' ".$anu."',anio='".$a."', mes='".$m."' where cve_area_resp='DK09A' and anio='".$rowx['anio']."' and mes='".$rowx['mes']."' and cve_pob='".$rowx['cve_pob']."' and cve_ruta='".$rowx['cve_ruta']."'") or die('No se pudo actualizar el registro');
print "<script>alert('El registro se actualizo de manera exitosa ')</script>";
$FechaInicial=' ';
$pob=' ';
$acr=' ';
$arpe=' ';
$anu=' ';
}

ESPERO ME PUEDAN AYUDAR, GRACIAS
  #2 (permalink)  
Antiguo 23/11/2004, 13:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El problema que tienes es que cada "boton" que tu pulsas (o link) haces una llamada a ese mismo script .. para eso ya usas una variable de control que decide en que proceso estás y en consecuencia tu código debe "saltar" hacia tal condicional IF() .. Tienes que tener presente que cada vez que haces una "acción" (borrar, editar .. etc) de esa forma .. al script le haces "peticiones" .. eso es como si llamases a ese script por el URL denuevo (bueno es así lo que sucede). Por eso "pierdes las variables" que puedieras generar en una "petición" ...

La solución es que tienes que propagar las variables que generas en uno de esos "casos" (if de tus acciones) para el siguiente.

No veo los links que usas o redireccionamintos que usas para saltar de un $btn a otro en los estados "Borrar", "Actualizar" .. etc. Es ahí donde debes propagar esas variables ya sea si son formularios en campos hidden o bien en el link (URL) que uses como una variable más: nose.tal?variable=$bcr2


Recomendación:

Si usas el botón "PHP" para colocar tu código PHP .. se verá coloreado y destacará más sobre tu pregunta en si (texto) el cual puedes hacerlo en minusculas (con uso de mayusculas cuando corresponda) .. Se leerá mejor así tus mensajes ..

Un saludo,
  #3 (permalink)  
Antiguo 23/11/2004, 14:06
 
Fecha de Ingreso: noviembre-2004
Ubicación: Oaxaca, Mexico
Mensajes: 97
Antigüedad: 19 años, 5 meses
Puntos: 0
No redirecciono a otra página, solo comparo en la misma el valor de $btn, no se si te entendi bien, pero creo que me quieres decir que debo hacer otra página en la que yo efectue las operaciones?
  #4 (permalink)  
Antiguo 24/11/2004, 05:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No es necesario que uses otra página/script para hacer esas operaciones .. pero si ahí tienes unos cuantos if() (podría ser un switch() ...) es por qué esa variable $btn llega de algún otro sito .. ¿donde generas el valor de esa varible? ... de un link? de donde?

Un saludo,
  #5 (permalink)  
Antiguo 24/11/2004, 09:18
 
Fecha de Ingreso: noviembre-2004
Ubicación: Oaxaca, Mexico
Mensajes: 97
Antigüedad: 19 años, 5 meses
Puntos: 0
No fijate que me sigue haciendo eso, estoy asignandole a una segunda variable el valor de la primera y lo imprimo antes de salir de la opción de busqueda y al entrar a actualizar y no lleva nada, lo mismo hago con un $row donde almacene la consulta en busqueda pero tambien pierde el valor al entrar a actualizar.

<?php
switch ($btn)
{
case 'Guardar':
{
$qry=mysql_query("select * from empleados where rpe='".$arpe."'");
if(!($row=mysql_fetch_array($qry)))
{
print "<script>alert('El empleado no existe')</script>";
print "<script> location.href = 'n_tomalect.php' </script>";
}
else{//insertamos los datos
$qry=mysql_query("select * from toma_lecturas where num_tarea='".$bnt."' and cve_area_resp='cualq' and anio='".$baf."' and mes='".$bmf."' and cve_pob='".$bcp."' and cve_ruta='".$bcr."'",$atcon);
if(!($row=mysql_fetch_array($qry)))
{
$qry= mysql_query("insert into toma_lecturas (num_tarea,fecha,cve_area_resp,cve_pob,cve_ruta,rp e_asig,num_usuarios,anio,mes) values('$ant','$FechaInicial','DK09A','$pob','$acr ','$arpe','$anu','$a','$m')") or die ('No se pudo completar la inserción');
print "<script>alert('El registro se inserto de manera exitosa ')</script>";
print "<script> location.href = 'inicio.php' </script>";//redirecciono a la pagina de inicio
$btn='Limpiar';
}else{
print "<script>alert('El registro ya existe')</script>";
}
}
// mysql_free_result($qry);
break;
}
case 'Buscar':
{
//$af=substr($qry[rpe],5,10); extraer datos; para la fecha
$qry=mysql_query("select * from toma_lecturas where num_tarea='".$bnt."' and cve_area_resp='DK09A' and anio='".$baf."' and mes='".$bmf."' and cve_pob='".$bcp."' and cve_ruta='".$bcr."'",$atcon);
//$row = mysql_fetch_array($qry);
if (mysql_num_rows($qry)==0)
{
print "<script>alert('El registro no se encuentra ')</script>";
}
else {
$row = mysql_fetch_array($qry);
$ant=$row["num_tarea"];
$FechaInicial=$row["fecha"];
$pob=$row["cve_pob"];
$acr=$row["cve_ruta"];
$arpe=$row["rpe_asig"];
$anu=$row["num_usuarios"];
$qrx=mysql_query("select * from toma_lecturas where num_tarea='".$ant."' and cve_area_resp='DK09A' and fecha='".$FechaInicial."' and cve_pob='".$pob."' and cve_ruta='".$acr."'",$atcon);
$rowx=mysql_fetch_array($qrx);
$bcr2=$bcr;
print "<script>alert('numero tarea en busqueda ".$rowx['num_tarea']." ')</script>";
print "<script>alert('ruta en busqueda ".$bcr2." ')</script>";
}
break;
}
case 'Actualizar':
{
$a=substr($FechaInicial,0,4);
$m=substr($FechaInicial,5,2);
print "<script>alert('numero tarea en actualizar ".$rowx['num_tarea']." ')</script>";
print "<script>alert('ruta en actualizar ".$bcr2." ')</script>";
$qry= mysql_query("update toma_lecturas set num_tarea='".$ant."', fecha='".$FechaInicial."',cve_area_resp='DK09A',cv e_pob='".$pob."',cve_ruta='".$acr."',rpe_asig='".$ arpe."',num_usuarios='".$anu."',anio='".$a."',mes= '".$m."' where num_tarea='".$bnt."' and cve_area_resp='DK09A' and anio='".$baf."' and mes='".$bmf."' and cve_pob='".$bcp."' and cve_ruta='".$bcr."'") or die ('No se pudo completar la inserción');
print "<script>alert('El registro se actualizo de manera exitosa ')</script>";
break;
}
case "Borrar ":
{
$qry=mysql_query("select * from toma_lecturas where num_tarea='".$ant."' and cve_area_resp='DK09A' and fecha='".$FechaInicial."' and cve_pob='".$pob."' and cve_ruta='".$acr."'",$atcon);
if(mysql_fetch_array($qry)==0){
print "<script>alert('El registro no se encuentra ')</script>";
}else{
$qry=mysql_query(" delete from toma_lecturas where num_tarea='".$ant."' and cve_area_resp='DK09A' and fecha='".$FechaInicial."' and cve_pob='".$pob."' and cve_ruta='".$acr."'");
print "<script>alert('El registro se borro de manera exitosa ')</script>";
}
break;
}
case "Cancelar ":
{
print"<script> location.href='inicio.php?".SID."' </script>"; }
break;
};
?>
  #6 (permalink)  
Antiguo 24/11/2004, 13:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ese script se llama "inicio.php"?

Bueno .. el caso es que donde redireccionas tipo:
print"<script> location.href='inicio.php?".SID."' </script>"; }
tienes que añadir las variables que necesites en ese script que redireccionas en el URL que formas o bien en sesiones (si es que las usas . .ya que se vé por ahí un SID)

Las redirecciones NO deberías hacerlas vía javascript (por lo menos las de ese tipo) .. tendrías que usar:

Código PHP:
header("Location: inicio.php");
exit; 
Y todos esos mensajes que haces en Javascript con tus alert() en ese script NO deberían estar en el script de Proceso (que es lo que hace la mayoría de ese scritp) sino en el que redireccionas si hay un error o se completa el proceso con exito.

Para eso harías cosas tipo:
Código PHP:
header("Location: inicio.php?mensaje=blabla");
exit; 
para que en la página que redireccionas . puedas tomar $_GET['mensaje'] y procesarlo para ver su valor o bien ver que mensaje has de mostrar.

Bajo la misma filosofía .. si necesitas otras varaibles que a ese script le pasastes o genera para el próximo script que redirecciona .. tendrás que propagarlas en el URL:

Código PHP:
header("Location: inicio.php?mensaje=blabla&otravariable=$otravaraible"); 
O bien en cookies, o sesiones para que la tomes en el script que redirecciona.


Un saludo,
  #7 (permalink)  
Antiguo 24/11/2004, 15:34
 
Fecha de Ingreso: noviembre-2004
Ubicación: Oaxaca, Mexico
Mensajes: 97
Antigüedad: 19 años, 5 meses
Puntos: 0
No, no redirecciono a otra página, hago las consultas, borrados y actualizaciones en la misma página, esos redireccionamientos los hago cuando el usuario quiere salir de esa opción, te repito, las operaciones las hago en la misma página en donde capturo los datos.

gracias por tu ayuda.
  #8 (permalink)  
Antiguo 25/11/2004, 07:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Danylo ..

No es lo mismo "una misma página" o script .. que diferentes PROCESOS!.

Si tu tienes un switch() que filtran el valor de tu $btn .. a ese script Lo llamaras de alguna forma por algún tipo de LINK!

nose.php?btn=Borrar
nose.php?btn=Actualizar
etc

Y de ahí .. a donde tenga que ir .. o que otras variables le puedas haber pasado a ese script para que las propagues al siguiente es todo lo que he intentado explicarte ..

No muestras completamente como llamas a ese script .. si es de forma directa o lo tienes bajo un include() de otro script "padre" .. o no sé .. El caso es que tienes que ver todo esto como "procesos" y cada proceso implica una "recarga" de página o cabiar de "pagina" aunque sea a si misma .. todo "viaje" y "vuelta" de variables entre cliente-servidor eso es un "proceso" o "petición" y cada "peticion" parte con sus variables vacias salvo las que les "propagues" (les hagas llegar) por algún método: formularios .. URL (en un link) .. o son cookies o son sesiones ...

Un saludo,
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 01:30.