Foros del Web » Programando para Internet » PHP »

por ke?

Estas en el tema de por ke? en el foro de PHP en Foros del Web. tengo este update: if ($HTTP_POST_VARS['change']!=""){ $query=" update Comercials set " ." cTitle='".$title."'" ." wname='".$wname."'" ." ,lifeEstile=".$le ." ,turism=".$tu ." ,Surfing=".$su ." ,realEstate=".$re ." ,loadging=".$lo ." ...
  #1 (permalink)  
Antiguo 08/04/2003, 15:07
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
por ke?

tengo este update:
if ($HTTP_POST_VARS['change']!=""){

$query=" update Comercials set "
." cTitle='".$title."'"
." wname='".$wname."'"
." ,lifeEstile=".$le
." ,turism=".$tu
." ,Surfing=".$su
." ,realEstate=".$re
." ,loadging=".$lo
." ,ecology=".$eco
." ,rest=".$res
." ,other=".$ot
." ,cEmail='".$email."'"
." ,email2='".$email2."'"
." ,cPhone='".$phone."'"
." ,phone2='".$phone2."'"
." ,phone3='".$phone3."'"
." ,site='".$site."'"
." ,link='".$link."'"
." ,description='".$Description."'"
." ,bdescr='".$bdescr."'"
." ,testim='".$testim."'"
." ,services='".$serv."'"
." where cid =".$cid;

$result = mysql_query($query);
if ($result){
echo "<script>document.location.href='/php/menu.php?m=c&cid=".$cid."'</script>";
}else{
/**echo " <script>document.location.href='/php/error.php?err=0'</script>";**/
echo $query;
}
} // change


si doy clik en change me hace el update pero me manda para la pagina de error, no se por ke.

imprimo el update y está bien:

update Comercials set cTitle='casa2' wname='askjklj' ,lifeEstile=1 ,turism=0 ,Surfing=1 ,realEstate=0 ,loadging=0 ,ecology=0 ,rest=0 ,other=0 ,cEmail='kl' ,email2='jklj' ,cPhone='klj' ,phone2='lkj' ,phone3='klj' ,site='lkj' ,link='klj' ,description=' kljklj' ,bdescr='jkl' ,testim='jkl' ,services='jkjk' where cid =13

alguna idea???

que reviso??


gracias!
  #2 (permalink)  
Antiguo 08/04/2003, 15:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm Yo no usaría Javascirpt para redireccionar .. pero bueno es una opción ..
De todas formas .. ya que se supone que al "redireccionar" quieres abandonar la ejecución del script en curso ..usa:
exit; .. para deterner el script (ejecución) tras tu javascript de redirección ..

Código PHP:
if ($result){
echo 
"<script>document.location.href='/php/menu.php?m=c&cid=".$cid."'</script>"
exit;
}else{
echo 
" <script>document.location.href='/php/error.php?err=0'</script>";
exit;

// change 
Un saludo,

Pd: ** Usa el boton PHP para que el código quede coloreado .. Se entendrá mejor.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 08/04/2003, 15:18
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
ya vi el error, gracias, faltaba una , en la segunda linea.


Cluster, pero que pasa si no uso este exit?

y


Como lo harias tu, qué ventaja tiene?

gracias.
  #4 (permalink)  
Antiguo 08/04/2003, 15:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En teória .. usando una sentencia tipo

Código PHP:
if (...)
// redirecionas ..
} else {
//redireccionas a otro sitio ..

y justo al final del script .. no tiene ningun efecto usar exit; .. pero si por ejemplo hicieras algo tipo:

Código PHP:
if (alguna variable no se cumple condicion){
// redireccionas
}

// resto de tu código ... 
Ese "resto de tu código" se va a ejecutar si no haces un exit; despues de tu código que uses para redireccionar (sea Javascritp/META o header() ...) .. Dependiendo de la lógica que tenga .. pasará al final del script o hará otras cosas ..

Por eso te decía . que si nosotros hacemos en el la mayoría de casos una redirección, es porqué queremos abandonar en ese punto de nuestro script la ejecución del mismo .. Con esas sentencias (sea javascript/META o header()) ..lo único que hace PHP es decirle al navegador (al cliente): "cambia la página a tal otra página que yo sigo mi proceso en el servidor .."

Usando Javascript o META tag (de refresco) si te fijas .. Por un instante en el navegador tienes una página con el código javascirp que estas poniendo (depende como cargue tus páginas lo veras mas claro o no te daras cuenta del cambio ..)

Usando funciones de redireccionamiento via cabeceras HTTP:
Código PHP:
header("location: pagina.php");
exit; 
// Y el exit para que termine la ejecución el script.php 
Le envias una cabera al navegador .. la misma que via javascript pero "digamos" antes de que se interprete el HTML/javascript en el navegador .. por lo tanto NO ves nada en el navegador y el "cambio" de página es mas rápido ..

Esto tiene un problema . Si usas HTML antes de esa instrucción header() te va a dar problemas con las "cabeceras enviadas en tal línea .. " .. Esto se soluciona de varias formas .. la mejor es comprendiendo donde se ejecuta PHP y donde HTML/javascript para que reordenes tu código PHP/HTML .. Otra opción pasa por gestionar el buffer de salida de PHP con funciones como ob_start() y afines .. pero no es la idea esa .. la idea es ordenar tu código sabiendo que PHP se ejecuta en el servidor y dependiendo de tu lógica vas a componer cierto HTML para entregarlo al navegador ..(cliente)..

Se me olvidó .. por cierto, Usando Header() .. cuando haces mención a la página q vas a redirecionar via location: pagina.tal .. puedes usar construcciónes de link como lo haces via javascript .. estas generando un "link" q va a entrarle a la pagina que redirccionas las variables por metodo GET ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 08/04/2003 a las 15:59
  #5 (permalink)  
Antiguo 09/04/2003, 14:10
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Por cierto, ya que compruebas si mysql_query() devuelve falso, a la hora de depurar el codigo puedes usar mysql_error() para que te muestre el mensaje de error que da MySQL, ademas de mostrar la consulta.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 09/04/2003, 19:48
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 22 años, 3 meses
Puntos: 11
Gracias por sus comentarios, me enrriquecen!


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 17:52.