Ir al contenido


Foto

if - elseif


  • Por favor identifícate para responder
22 respuestas en este tema

#1 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 07 noviembre 2011 - 01:32

Estoy haciendo un bloque IF - ELSEIF y por alguna razon al entrar en el elseif abandona el procedimiento, me explico mejor:


php
  1. //Conecta a la bd
  2.   $conn=conectar();
  3.   //Nuevo Ingreso
  4.   //Arma la consulta
  5.   if($_POST["accion"] == "GRABAR"):
  6.       $query="Insert Into tabla ***";
  7.   elseif($_POST["accion"] == "EDITAR"):
  8.       error("1"); 
  9.       $query="update tabla set nombre = '".$_POST["Nombre"]."'
  10.                   where Codigo = '".$_POST["codigo"]."'";
  11.           error("2");         
  12.   endif;


Como podran ver en el elseif coloque dos funciones error, estas funciones no son mas que cuadros de dialogos para mostrar un dialogo.


El 1 se ejecuta, el 2 ya no. Alguna idea que pueda estar pasando???
  • 0

#2 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 07 noviembre 2011 - 02:15

¿Lo has intentado así?


php
  1. //Conecta a la bd
  2.   $conn=conectar();
  3.   //Nuevo Ingreso
  4.   //Arma la consulta
  5.   if($_POST["accion"] == "GRABAR"){
  6.       $query="Insert Into tabla ***";
  7.   }elseif($_POST["accion"] == "EDITAR"){
  8.       error("1"); 
  9.       $query="update tabla set nombre = '".$_POST["Nombre"]."'
  10.                   where Codigo = '".$_POST["codigo"]."'";
  11.       error("2");         
  12.   }





Saludos.
  • 0

#3 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 07 noviembre 2011 - 02:38

si, asi lo tenia al principio, realize el cambio a ver si tenia algo que ver, pero nada...
  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 08 noviembre 2011 - 07:04

Debes colocar un break al final de cada if..elseif.

Saludos.

  • 0

#5 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 08 noviembre 2011 - 08:45

Debes colocar un break al final de cada if..elseif.

Saludos.


Nada, lo raro es que el de GUARDAR si lo ejecuta
  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 08 noviembre 2011 - 09:00

Bueno el caso es que con elseif no es necesario hacer la comparacion, porque no lo haces por if separados??
  • 0

#7 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 08 noviembre 2011 - 09:07

Asi quedo el codigo, sigue sin mostrar el segundo mensaje.


php
  1. //Conecta a la bd
  2.  
  3. $conn=conectar();
  4.   //Nuevo Ingreso
  5.   //Arma la consulta
  6.   if($_POST["accion"] == "GRABAR"):
  7.       $query="Insert Into tabla ***";
  8. endif;
  9.  
  10. if($_POST["accion"] == "EDITAR"):
  11.       error("1"); 
  12.       $query="update tabla set nombre = '".$_POST["Nombre"]."'
  13.                   where Codigo = '".$_POST["codigo"]."'";
  14.           error("2");         
  15.   endif;


  • 0

#8 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 08 noviembre 2011 - 09:18

Intentalo asi:



php
  1. //Conecta a la bd
  2.  
  3. $conn=conectar();
  4.   //Nuevo Ingreso
  5.   //Arma la consulta
  6.   if ($_POST["accion"] == "GRABAR")
  7.       $query="Insert Into tabla ***";
  8.  
  9. if($_POST["accion"] == "EDITAR") {
  10.       error("1"); 
  11.       $query="update tabla set nombre = '".$_POST["Nombre"]."'
  12.                   where Codigo = '".$_POST["codigo"]."'";
  13.           error("2"); 
  14. }
  15.  



Si no te funciona algo debe haber con el POST ACCION
  • 0

#9 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 08 noviembre 2011 - 09:21

Ya realize el cambio, sigue igual, no creo que sea el post porque el 1 si me lo muestra, lo que no me muestra es el 2

Aparte que la de grabar si la ejecuta.
  • 0

#10 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 08 noviembre 2011 - 09:52

A ver trata de explicar que es lo que deseas, porque la verdad no entiendo eso de error dos veces.

Saludos.

  • 0

#11 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 08 noviembre 2011 - 10:01

A ver es sencillo, ese archivo PHP esta en el action de dos form html, ambos form tienen un campo hidden que indica la "accion" que voy a ejecutar en esa pantalla.

Asi que lo que hago es consultar el $_POST["accion"] dependiendo lo que traiga se arma o una o otra consulta en $query.

Con respecto a error es una funcion que me ejecuta un alert, y en ese caso especial lo utilizo para determinar si entra al bloque IF (1) y si se ejecuta alguna instruccion luego de la asignacion del $query (2).

Se entiende???
  • 0

#12 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 08 noviembre 2011 - 11:55

¿Lo has probado así:?



php
  1. //Conecta a la bd
  2.   $conn=conectar();
  3.   //Nuevo Ingreso
  4.   //Arma la consulta
  5.   if($_POST["accion"] == "GRABAR"){
  6.       $query="Insert Into tabla ***";
  7.   }elseif($_POST["accion"] == "EDITAR"){
  8.       error("1"); 
  9.       $query="update tabla set nombre = '".$_POST["Nombre"]."'where Codigo = '".$_POST["codigo"]."'";
  10.       error("2");         
  11.   }




Saludos.

  • 0

#13 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 08 noviembre 2011 - 11:58

A mi me gusta trabajar con variables, por que no los utilizas??.

Saludos.

  • 0

#14 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 08 noviembre 2011 - 12:44

Escafandra: Asi mismo tampoco me funciona

Enecumene: Que colocaria en variables?
  • 0

#15 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 08 noviembre 2011 - 02:58

Quizás es una perogrullada pero ¿Como sabes que no funciona?.  ^o|

Algunos debugers fallan al mostrar la línea que se ejecuta a pesar de que la ejecución es correcta. Coloca una bandera, un pitido, algo que inequívocamente te demuestra si funciona o no.  :)


Saludos.

  • 0

#16 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 08 noviembre 2011 - 04:44

error("1");
y


error("2");


error("1") se ejecuta, el error("2") no lo hace
  • 0

#17 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 08 noviembre 2011 - 09:10

Una idea loca... no será que está generando un error en la linea anterior y no llega a la siguiente línea para mostrar el mensaje de error("2");

Jajajaja, se me ocurrió, porque no tengo ni idea de si eso es siquiera posible, asi que si dije algo absurdo, sólo ignoren el mensaje  *-) *-) *-) (y) (y) (y)

Saludox ! :)
  • 0

#18 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 09 noviembre 2011 - 06:40

Escafandra: Asi mismo tampoco me funciona

Enecumene: Que colocaria en variables?




php
  1. $nombre = $_POST["Nombre"];
  2. $codigo = $_POST["Codigo"];
  3.  
  4. //Conecta a la bd
  5.   $conn=conectar();
  6.   //Nuevo Ingreso
  7.   //Arma la consulta
  8.   if($_POST["accion"] == "GRABAR"){
  9.       $query="Insert Into tabla ***";
  10.   }elseif($_POST["accion"] == "EDITAR"){
  11.       error("1"); 
  12.       $query="update tabla set nombre = '".$nombre."' where Codigo = '".$codigo."'";
  13.       error("2");         
  14.   }



Tambien encontre un bug en la segunda consulta, el where estaba pegado, intenta ahora mi estimado.

Saludos.

  • 0

#19 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 09 noviembre 2011 - 09:07

Peor aun, hago esto:


php
  1. //Conecta a la bd
  2. $conn=conectar();
  3.   //Nuevo Ingreso
  4.   //Arma la consulta
  5.  
  6.  
  7.   if($_POST["accion"] == "EDITAR"){
  8.       error("1D");
  9.       $query="update";
  10.       error($query);
  11.   }




y no me muestra el segundo mensaje con el query... El primer mensaje si lo muestra
  • 0

#20 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 09 noviembre 2011 - 09:16

No se, No se, hay algo bastante extrano ahi, si el primer mensaje de error te aparece es porque hay algun problema no?, de todos modos, intenta hacer donde ejecutas la consulta lo siguiente para que te muestre algun error si se trata de la consulta:

mysql_query($query, $conn);
echo mysql_errno($conn) . ": " . mysql_error($conn) . "\n";


Saludos.
  • 0




IP.Board spam blocked by CleanTalk.