Foros del Web » Programando para Internet » PHP »

problemas con mi switch y condicionante if ($avanceCA==1)

Estas en el tema de problemas con mi switch y condicionante if ($avanceCA==1) en el foro de PHP en Foros del Web. Necesito ayuda acerca de una iteración switch.... necesito seguir esta secuencia. Si hay fecha de Emisión de Pliego existen 2 caminos. Cancelación que sigue este ...
  #1 (permalink)  
Antiguo 29/05/2012, 10:59
 
Fecha de Ingreso: junio-2008
Mensajes: 101
Antigüedad: 15 años, 10 meses
Puntos: 0
problemas con mi switch y condicionante if ($avanceCA==1)

Necesito ayuda acerca de una iteración switch....

necesito seguir esta secuencia.

Si hay fecha de Emisión de Pliego existen 2 caminos.
Cancelación que sigue este camino.
0.- EP Emision del Pliego -- y se escribe automáticamente al dar de alta el pliego
1.- CA Cancelacion
2.- EPC Entrega Pliego de comisión del comisionado
3.- RB Reembolso boleto
4.- VINC Entrega Viáticos a Nivel Central
5.- OI Orden de Ingreso
6.- EC Entrega a comisionado la OI
7.- E$ Entrega del dinero
8.- PV Pago Villalongín
9.- ANC Aviso a Nivel Central
10.- OI$ OI Pagada
11.- CO Comprobación

y Aprodbación es el otro camino.
0.- EP Emision del Pliego -- y se escribe automáticamente al dar de alta el pliego
1.- EPC Entrega Pliego de comisión del comisionado
2.- VINC Entrega Viáticos a Nivel Central
3.- SF Saldo a Favor
4.- Scero Saldo Cero
5.- OI Orden de Ingreso
6.- OI$ OI Pagada
7.- CO Comprobación

La condición para que se pueda escribir una fecha y movimiento es que debe existir una anterior en esta tablita. Es decir, para que exista una "Cancelación" de Pliego primero debe de existir una "Emisión del Pliego"

Mi problema radica en la condición " if ($avanceCA==1) que cuando le pongo == sí busca la condición del evento anterior pero NO cumple con la condición count(cve_mov) --select y cuando pongo = aplica el insert pero no busca la condición


Tengo lo siguiente:
Código PHP:
// Inicia Avance de Pliego
include("conexion.php");
 switch (
$_REQUEST['date_22']) {
 
case 
"CA":
$avanceCA mysql_query("select count(cve_mov) from process where cve_mov='EP' and id_plie='$_REQUEST[date_08]';",$conexion)
 or die(
"Problemas en el Select count(cve_mov=EP): ".mysql_error());
if (
$avanceCA==1
 {
$result7 mysql_query("insert into process values 
($_REQUEST[date_08],'CA','$_REQUEST[date_09]');"
,$conexion)
or die(
"<strong><span style=\"color:red;\">Lo sentimos, NO se permiten Valores Duplicados en Cancelaci&oacute;n,
'$_REQUEST[date_09]'</span></strong><br><br>
<input type=\"button\" onclick=\"history.back()\" value=\"Dar Click Para Regresar\" size='22' class='botones'><br><br>"
);  //.mysql_error());
}
else
{
echo 
" <span style=\"color:red;\">$avanceCA....Todav&iacute;a no existe Fecha de <b>Emisi&oacute;n de Pliego</b> para el pliego # &nbsp; <b>$plie</b></span>
<br><br>"
;
}
break;

case 
"EPC":
$avanceEPC_CA mysql_query("select count(cve_mov) from process where cve_mov='CA' and id_plie='$_REQUEST[date_08]';",$conexion)
 or die(
"Problemas en el Select count(cve_mov=EPC):&nbsp;".mysql_error());
$avanceEPC_EP mysql_query("select count(cve_mov) from process where cve_mov='EP' and id_plie='$_REQUEST[date_08]';",$conexion)
 or die(
"Problemas en el Select count(cve_mov=EPC):&nbsp;".mysql_error());
 
 if (
$avanceEPC_CA==1) {
$result7 mysql_query("insert into process values 
('$_REQUEST[date_08]','EPC','$_REQUEST[date_09]');"
,$conexion)
// or die("Problemas en el Insert avance==0:&nbsp;".mysql_error());
or die("<strong><span style=\"color:red;\">Lo sentimos, NO se permiten Valores Duplicados en 'Entraga de Pliego de Comisi&oacute;n',
'$_REQUEST[date_09]'</span></strong><br><br>
<input type=\"button\" onclick=\"history.back()\" value=\"Dar Click Para Regresar\" size='16' class='botones'><br><br>"
);  //.mysql_error());
}elseif ($avanceEPC_EP==1) {
$result7 mysql_query("insert into process values 
('$_REQUEST[date_08]','EPC','$_REQUEST[date_09]');"
,$conexion)
// or die("Problemas en el Insert avance==0:&nbsp;".mysql_error());
or die("<strong><span style=\"color:red;\">Lo sentimos, NO se permiten Valores Duplicados en 'Entraga de Pliego de Comisi&oacute;n',
'$_REQUEST[date_09]'</span></strong><br><br>
<input type=\"button\" onclick=\"history.back()\" value=\"Dar Click Para Regresar\" size='16' class='botones'><br><br>"
);  //.mysql_error());
}
break;

case 
"RB"
$avanceRB mysql_query("select count(cve_mov) from process where cve_mov='CA' and id_plie='$_REQUEST[date_08]';",$conexion)
 or die(
"Problemas en el Select count(cve_mov=RB):&nbsp;".mysql_error());
 if (
$avanceRB==1) {
$result7 mysql_query("insert into process values 
('$_REQUEST[date_08]','RB','$_REQUEST[date_09]');"
,$conexion)
// or die("Problemas en el Insert avance==0:&nbsp;".mysql_error());
or die("<strong><span style=\"color:red;\">Lo sentimos, NO se permiten Valores Duplicados en 'Reembolso del Boleto',
'$_REQUEST[date_09]'</span></strong><br><br>
<input type=\"button\" onclick=\"history.back()\" value=\"Dar Click Para Regresar\" size='22' class='botones'><br><br>"
);  //.mysql_error());
}else{
echo 
" <span style=\"color:red;\">Todav&iacute;a no existe Fecha de <b>Cancelaci&oacute;n</b> para el pliego # &nbsp; <b>$plie</b></span>
<br><br>"
;
}
break;


case 
"OI"
$avanceOI mysql_query("select count(cve_mov) from process where cve_mov='VINC' and id_plie='$_REQUEST[date_08]';",$conexion)
 or die(
"Problemas en el Select count(cve_mov=OI):&nbsp;".mysql_error());
 if (
$avanceOI==1) {
$result7 mysql_query("insert into process values 
('$_REQUEST[date_08]','OI','$_REQUEST[date_09]');"
,$conexion)
// or die("Problemas en el Insert avance==0:&nbsp;".mysql_error());
or die("<strong><span style=\"color:red;\">Lo sentimos, NO se permiten Valores Duplicados en 'Orden de Ingreso',
'$_REQUEST[date_09]'</span></strong><br><br>
<input type=\"button\" onclick=\"history.back()\" value=\"Dar Click Para Regresar\" size='22' class='botones'><br><br>"
);  //.mysql_error());
}else{
echo 
" <span style=\"color:red;\">Todav&iacute;a no existe Fecha de <b>Vi&aacute;ticos a Nivel Central</b> para el pliego # &nbsp; <b>$plie</b></span>
<br><br>"
;
}
break;

case 
"SF"
$avanceSF mysql_query("select count(cve_mov) from process where cve_mov='VINC' and id_plie='$_REQUEST[date_08]';",$conexion)
 or die(
"Problemas en el Select count(cve_mov=SF):&nbsp;".mysql_error());
 if (
$avanceSF==1) {
$result7 mysql_query("insert into process values 
('$_REQUEST[date_08]','SF','$_REQUEST[date_09]');"
,$conexion)
// or die("Problemas en el Insert avance==0:&nbsp;".mysql_error());
or die("<strong><span style=\"color:red;\">Lo sentimos, NO se permiten Valores Duplicados en 'Saldo a Favor.',
'$_REQUEST[date_09]'</span></strong><br><br>
<input type=\"button\" onclick=\"history.back()\" value=\"Dar Click Para Regresar\" size='22' class='botones'><br><br>"
);  //.mysql_error());
}else{
echo 
" <span style=\"color:red;\">Todav&iacute;a no existe Fecha de <b>VINC</b> para el pliego # &nbsp; <b>$plie</b></span>
<br><br>"
;
}
break;

case 
"Scero"
$avanceScero mysql_query("select count(cve_mov) from process where cve_mov='VINC' and id_plie='$_REQUEST[date_08]';",$conexion)
 or die(
"Problemas en el Select count(cve_mov=Scero):&nbsp;".mysql_error());
 if (
$avanceScero==1) {
$result7 mysql_query("insert into process values 
('$_REQUEST[date_08]','Scero','$_REQUEST[date_09]');"
,$conexion)
// or die("Problemas en el Insert avance==0:&nbsp;".mysql_error());
or die("<strong><span style=\"color:red;\">Lo sentimos, NO se permiten Valores Duplicados en 'Saldo Cero.',
'$_REQUEST[date_09]'</span></strong><br><br>
<input type=\"button\" onclick=\"history.back()\" value=\"Dar Click Para Regresar\" size='22' class='botones'><br><br>"
);  //.mysql_error());
}else{
echo 
" <span style=\"color:red;\">Todav&iacute;a no existe Fecha de <b>VINC</b> para el pliego # &nbsp; <b>$plie</b></span>
<br><br>"
;
}
break;

case 
"CO"
$avanceCO_OI mysql_query("select count(cve_mov) from process where cve_mov='OI$' and id_plie='$_REQUEST[date_08]';",$conexion)
 or die(
"Problemas en el Select count(cve_mov=CO):&nbsp;".mysql_error());
 
 if (
$avanceCO==1) {
$result7 mysql_query("insert into process values 
('$_REQUEST[date_08]','CO','$_REQUEST[date_09]');"
,$conexion)
// or die("Problemas en el Insert avance==0:&nbsp;".mysql_error());
or die("<strong><span style=\"color:red;\">Lo sentimos, NO se permiten Valores Duplicados en 'Comprobaci&oacute;n.',
'$_REQUEST[date_09]'</span></strong><br><br>
<input type=\"button\" onclick=\"history.back()\" value=\"Dar Click Para Regresar\" size='22' class='botones'><br><br>"
);  //.mysql_error());
}else{
echo 
" <span style=\"color:red;\">Todav&iacute;a no existe Fecha de <b>OI$</b> para el pliego # &nbsp; <b>$plie</b></span>
<br><br>"
;
}
break;




}  
// Termina switch ($_REQUEST(date_22))

// Termina Avance de Pliego

 
$result8 mysql_query("select * from process where id_plie='$plie'; ",$conexion)
 or die(
"Problemas en el Select Process:&nbsp;".mysql_error()); 

Última edición por benjaminvera; 29/05/2012 a las 12:16
  #2 (permalink)  
Antiguo 29/05/2012, 15:04
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Respuesta: problemas con mi switch y condicionante if ($avanceCA==1)

Hola.

No estoy seguro de haber entendido perfectamente, pero como veo que nadie te ha contestado por ahí te sirve lo que te voy a marcar. El operador == verifica si dos valores son iguales, pero no idénticos. Podría suceder que una consulta a la base de datos devuelva TRUE porque se realizó con éxito y al compararla con 1 con el operador == entre al if porque la condición se cumple (TRUE == 1). Para corregir eso deberías usar === para comparar.
De todas formas, en tu caso no veo por qué la consulta devolvería TRUE cuando se trata de un SELECT.

Si no te sirve, trata de explicar un poco mejor cuál es el problema. Saludos.
  #3 (permalink)  
Antiguo 30/05/2012, 10:35
 
Fecha de Ingreso: junio-2008
Mensajes: 101
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: problemas con mi switch y condicionante if ($avanceCA==1)

Muchas gracias por tu respuesta RabidFish.
Voy a tratar de explicarme mejor.

Tengo el siguiente ejemplo:
Aprobacion del viaje.
1.- Emision del Pliego de Juan Pitas Perez
2.- Deposito del Anticipo de dinero para el viaje de Juan Pitas Perez
3.- Entrega de gastos del viaje de Juan Pitas Perez
4.- Comprobacion de anticipo contra gastos de Juan Pitas Perez
5.- Saldo a favor de Juan Pitas Perez
6.- Oficina de viaticos deposita 3,000 pesos a Juan Pitas Perez
7.- Oficina de viaticos entrega comprobante de pago a Juan Pitas Perez

Cancelacion del viaje
1.- Emision del Pliego de Juan Pitas Perez
2.- Deposito del Anticipo de dinero para el viaje de Juan Pitas Perez
3.- Cancelacion del viaje de Juan Pitas Perez
4.- Reembolso del boleto de Juan Pitas Perez
5.- Pagar a Oficina de viaticos anticipo de 3,000 pesos a Juan Pitas Perez
6.- Oficina de viaticos entrega comprobante de pago a Juan Pitas Perez

Para el escenario de la 'Cancelación del viaje' entonces tenemos que solo en caso de existir 'EM' (emision de pliego) se puede proceder a la cancelación y se hace la parte del IF (insert). En caso contrario se hace la parte del ELSE.

Pero en mi codigo hago un switch para buscar cada caso que en este caso es 'CA', (cancelación) y la condición del select count(cve_mov) va a buscar el evento 'EP' (Emisión de pliego) y si lo encuentra pone un 1.
Código PHP:
mysqlselect count(cve_movfrom process where cve_mov='EP' and id_plie='1234';
+----------------+
count(cve_mov) |
+----------------+
|              
|
+----------------+
1 row in set (0.01 sec
Aquí en mi código SWITCH no logro que me funcione correctamente la variable $avanceCA y se me va hasta la parte ELSE
Alguien puede ayudarme...
Código PHP:
// Inicia Avance de Pliego
include("conexion.php");
 switch (
$_REQUEST['date_22']) {
 
case 
"CA":
$avanceCA mysql_query("select count(cve_mov) from process where cve_mov='EP' and id_plie='$_REQUEST[date_08]';",$conexion)
 or die(
"Problemas en el Select count(cve_mov=EP):&nbsp;".mysql_error());
if (
$avanceCA==1
 {
$result7 mysql_query("insert into process values 
($_REQUEST[date_08],'CA','$_REQUEST[date_09]');"
,$conexion)
or die(
"<strong><span style=\"color:red;\">Lo sentimos, NO se permiten Valores Duplicados en Cancelaci&oacute;n,
'$_REQUEST[date_09]'</span></strong><br><br>
<input type=\"button\" onclick=\"history.back()\" value=\"Dar Click Para Regresar\" size='22' class='botones'><br><br>"
);  //.mysql_error());
}
else
{
echo 
" <span style=\"color:red;\">$avanceCA....Todav&iacute;a no existe Fecha de <b>Emisi&oacute;n de Pliego</b> para el pliego # &nbsp; <b>$plie</b></span>
<br><br>"
;
}
break;
}  
// termina el switch 
como nota informativa agrego
Código PHP:
mysqlselect from process where id_plie='1234';
+---------+---------+------------+
id_plie cve_mov fecha_mov  |
+---------+---------+------------+
1234    EP      2012-05-08 |
+---------+---------+------------+ 

Última edición por benjaminvera; 30/05/2012 a las 10:41
  #4 (permalink)  
Antiguo 30/05/2012, 12:33
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Respuesta: problemas con mi switch y condicionante if ($avanceCA==1)

¿Y si pruebas algo así...?

Código PHP:
...
case 
"CA":
$consulta mysql_query("select count(cve_mov) from process where cve_mov='EP' and id_plie='$_REQUEST[date_08]';",$conexion)
or die(
"Problemas en el Select count(cve_mov=EP):&nbsp;".mysql_error());
$avanceCA mysql_fetch_array($consulta);
if (
$avanceCA[0]==1
{
... 
Hay otras funciones aparte de mysql_fetch_array pero te doy el ejemplo con esa que es la que uso normalmente.

Saludos.
  #5 (permalink)  
Antiguo 30/05/2012, 13:00
 
Fecha de Ingreso: junio-2008
Mensajes: 101
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: problemas con mi switch y condicionante if ($avanceCA==1)

wow.... solucionado.....

Vientos....

Mi RaPid Fish.... jejejeje

Saludazos mi hermano....
  #6 (permalink)  
Antiguo 31/05/2012, 21:18
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Respuesta: problemas con mi switch y condicionante if ($avanceCA==1)

¡Buenísimo! Me alegro que hayas podido solucionarlo

Etiquetas: condicionante, mysql, sql, switch
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 11:16.