Foros del Web » Programando para Internet » PHP »

Problema con IF - ELSE

Estas en el tema de Problema con IF - ELSE en el foro de PHP en Foros del Web. Buenas noches a toda la comunidad tengo un pequeño problema con este codigo me ejecuta el if pero cuando tiene que ejecutar la parte del ...
  #1 (permalink)  
Antiguo 18/10/2012, 20:36
 
Fecha de Ingreso: octubre-2012
Ubicación: Colombia / Barranquilla
Mensajes: 6
Antigüedad: 11 años, 6 meses
Puntos: 0
Problema con IF - ELSE

Buenas noches a toda la comunidad tengo un pequeño problema con este codigo me ejecuta el if pero cuando tiene que ejecutar la parte del else no me funciona me podrian ayuda por favor.

Código PHP:
<?php session_start();
include 
"app/conexion.php";
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <title>Tu Cuenta</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" href="css/reset.css" type="text/css" media="screen">
    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
    <link rel="stylesheet" href="css/grid.css" type="text/css" media="screen">  
    <script src="js/jquery-1.7.1.min.js" type="text/javascript"></script>
    <script src="js/cufon-yui.js" type="text/javascript"></script>
    <script src="js/cufon-replace.js" type="text/javascript"></script>
    <script src="js/Vegur_500.font.js" type="text/javascript"></script>
    <script src="js/Ropa_Sans_400.font.js" type="text/javascript"></script> 
    <script src="js/FF-cash.js" type="text/javascript"></script>    
    <script src="js/script.js" type="text/javascript"></script>  
    <!--[if lt IE 8]>
    <div style=' clear: both; text-align:center; position: relative;'>
        <a href="http://windows.microsoft.com/en-US/internet-explorer/products/ie/home?ocid=ie6_countdown_bannercode">
            <img src="http://storage.ie6countdown.com/assets/100/images/banners/warning_bar_0000_us.jpg" border="0" height="42" width="820" alt="You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today." />
        </a>
    </div>
    <![endif]-->
    <!--[if lt IE 9]>
         <script type="text/javascript" src="js/html5.js"></script>
        <link rel="stylesheet" href="css/ie.css" type="text/css" media="screen">
    <![endif]-->
</head>
<!-- Agregado Inicial -->

<!-- Agregado Final -->
<body id="page5">
    <!--==============================header=================================-->
    <header>
        <div class="border-bot">
            <div class="main">
                <h1><a href="index.php">Farmacia Torres</a></h1>
                <nav>
                    <ul class="menu">
                        <li><a href="index.php">Inicio</a></li>
                        <li><a href="premios.php">Premios</a></li>
                        <li><a class="active" href="dashboard.php">Tu Cuenta</a></li>
                        <li><a href="empresa.php">Empresa</a></li>
                        <li><a href="contacto.php">Contacto</a></li>
                    </ul>
                </nav>
                <div class="clear"></div>
            </div>
        </div>
    </header>
    <!--==============================content================================-->
    <section id="content"><div class="ic">Creado el 07 de Septiembre de 2012!</div>
        <div class="main">
            <div class="container_12">
                <div class="wrapper">
                    <article class="grid_8">
                        <h3>Estado de la Factura</h3>
                        <?php
                        $numver
=$_REQUEST["numver"];
                        
$numfac=$_REQUEST["numfac"];
                        
$cedula=$_REQUEST["cedula"];
                        
$result mysql_query("SELECT n_verificacion,n_facturas FROM FT_FACTURAS WHERE n_verificacion='$numver' AND n_facturas='$numfac'");
                        if(
$row mysql_fetch_array($result)){
                        if(
$numver $row['n_verificacion'] && $numfac $row['n_facturas']){
                        echo 
"El numero de factura ya se encuentra registrado.";
                        }else{
                        
mysql_query("INSERT INTO FT_FACTURAS(f_n_cedula, n_verificacion, n_facturas) VALUES (".$cedula.", ".$numver.", ".$numfac.")");
                           echo 
"Factura registrada con exito.";
                        }
                        
mysql_close();    
                        }
                        
?>
                    </article>
                    <article class="grid_4">
                        <div class="indent-top indent-left">
                            <div class="wrapper p3">
                                <h3>Bienvenido</h3>
                            <!--    <figure class="img-indent-r"><a href="#"><img src="images/page1-img1.png" alt=""></a></figure> 
                                <div class="extra-wrap">
                                    <strong class="title-1">Tell Your<strong>Friends</strong><em>About</em><em>Our Cafe</em></strong>
                                </div> -->
                                <?php
                                
if (isset($_SESSION['k_username'])) {
                                echo 
'<b>'.$_SESSION['k_username'].'</b>.';
                                echo 
'<p><a href="logout.php">Logout</a></p>';
                                }else{
                                echo 
'Anonimo';
                                echo 
'<p><a href="index.php">Login</a></p>
                                <p><a href="registro.html">Registrate</a></p>'
;
                                }
                                
?> 
                            </div>
                            <h3 class="p1">Latest News</h3>
                            <p class="prev-indent-bot">24 Hour Emergency Towing</p>
                            <p class="p0">Monday - Friday: 7:30 am - 6:00</p>
                            <p class="prev-indent-bot">Saturday: 7:30 am - Noon</p>
                            <p class="img-indent-bot">Night Drop Available</p>
                            <dl>
                                <dt class="prev-indent-bot">Demolink.org 8901 Marmora Road, Glasgow, D04 89GR.</dt>
                                <dd><span>Telephone:</span>+1 959 552 5963;</dd>
                                <dd><span>FAX:</span>+1 959 552 5963</dd>
                                <dd><span>E-mail:</span><a href="#">[email protected]</a></dd>
                            </dl>
                        </div>
                    </article>
                </div>
            </div>
        </div>
    </section>
    <!--==============================footer=================================-->
    <footer>
        <div class="main">
            <div class="container_12">
                <div class="wrapper">
                    <div class="grid_3">
                        <div class="spacer-1">
                            <a href="index.php"><img src="images/footer-logo.png" alt="Farmacia Torres"></a>
                        </div>
                    </div>
                    <div class="grid_5">
                        <div class="indent-top2">
                            <p class="prev-indent-bot">&copy; 2012 Farmacia Torres</p>
                            PBX: (5) 368 0323 Email: <a href="#">[email protected]</a>
                        </div>
                    </div>
                    <div class="grid_4">
                        <ul class="list-services">
                            <li><a class="item-1" href="#"></a></li>
                            <li><a class="item-2" href="#"></a></li>
                            <li><a class="item-3" href="#"></a></li>
                            <li><a class="item-4" href="#"></a></li>
                        </ul>
                        <span class="footer-text">&copy; 2012 <a class="link color-2" href="#">Farmacia Torres</a></span>
                    </div>
                </div>
            </div>
        </div>
    </footer>
    <script type="text/javascript"> Cufon.now(); </script>
</body>
</html>
que error tengo que podria ser lo que esta mal no tengo la menor idea les agradezco mucho su ayuda
  #2 (permalink)  
Antiguo 18/10/2012, 21:17
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Problema con IF - ELSE

bienvenido, el problema no está ahi, porque la logica la tenes bien puesta.

A ver si adivino, tu problema está cuando borras la session, supongo que es eso.
Intenta borra la session con session_destroy() y unset($_SESSION['k_username']
Luego vuelve a ese archivo a ver si te ejecuta lo del if.else
  #3 (permalink)  
Antiguo 19/10/2012, 20:01
 
Fecha de Ingreso: octubre-2012
Ubicación: Colombia / Barranquilla
Mensajes: 6
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Problema con IF - ELSE

Gracias Rodrigo intentare probar la solución y te comento enseguida a ver si me sacas de este aprieto.
  #4 (permalink)  
Antiguo 19/10/2012, 20:12
 
Fecha de Ingreso: octubre-2012
Ubicación: Colombia / Barranquilla
Mensajes: 6
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Problema con IF - ELSE

Cita:
Iniciado por rodrigo791 Ver Mensaje
bienvenido, el problema no está ahi, porque la logica la tenes bien puesta.

A ver si adivino, tu problema está cuando borras la session, supongo que es eso.
Intenta borra la session con session_destroy() y unset($_SESSION['k_username']
Luego vuelve a ese archivo a ver si te ejecuta lo del if.else
Hola rodrigo hice la prueba pero no me cierra la sección del usuario y pues no es la idea se supone nada mas que me debe comprobar el usuario me compruebe si la factura ya fue ingresada y si no me la registre nada mas pero no he podido no soy muy experto en php pero hay a patadas voy yo ingrese os dos datos que me dijiste al final de la ultima parte del php.

Espero poder seguir llevando tu orientación gracias.
  #5 (permalink)  
Antiguo 19/10/2012, 20:18
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Problema con IF - ELSE

Mira ahora que me fijo tenes mas de 1 if-else en tu código, apunte para el lado de las sesiones porque no vi el otro if-else que haces en el insert, asi que eso borralo lo que te dije, si es que no tenias problemas con la sesion.

Cuando decís que no te funciona la parte del else que queres decir? que no te inserta los datos y no te muestra nada en pantalla? o no te inserta los datos pero si te muestra algún error en pantalla? si te devuelve algún error dejalo acá el mensaje.
  #6 (permalink)  
Antiguo 19/10/2012, 20:33
 
Fecha de Ingreso: octubre-2012
Ubicación: Colombia / Barranquilla
Mensajes: 6
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Problema con IF - ELSE

Cita:
Iniciado por rodrigo791 Ver Mensaje
Mira ahora que me fijo tenes mas de 1 if-else en tu código, apunte para el lado de las sesiones porque no vi el otro if-else que haces en el insert, asi que eso borralo lo que te dije, si es que no tenias problemas con la sesion.

Cuando decís que no te funciona la parte del else que queres decir? que no te inserta los datos y no te muestra nada en pantalla? o no te inserta los datos pero si te muestra algún error en pantalla? si te devuelve algún error dejalo acá el mensaje.
Bueno te cuento bien en la parte donde el me compara el numero de factura si esta en la base de datos el me debe mandar un mensaje de ya esta registrado si no lo registra y me envié el mensaje de que lo registro.

Este es el pedacito desesperante

Código PHP:
<?php
                        $numver
=$_REQUEST["numver"];
                        
$numfac=$_REQUEST["numfac"];
                        
$cedula=$_REQUEST["cedula"];
                        
$result mysql_query("SELECT n_verificacion,n_facturas FROM FT_FACTURAS WHERE n_verificacion='$numver' AND n_facturas='$numfac'");
                        if(
$row mysql_fetch_array($result)){
                        if(
$numver $row['n_verificacion'] && $numfac $row['n_facturas']){
                        echo 
"El numero de factura ya se encuentra registrado.";
                        }else{
                        
mysql_query("INSERT INTO FT_FACTURAS(f_n_cedula, n_verificacion, n_facturas) VALUES (".$cedula.", ".$numver.", ".$numfac.")");
                           echo 
"Factura registrada con exito.";
                        }
                        
mysql_close();    
                        }
                        
?>
ahora que hablo de eso si no encuentra nada el resultado de la variable seria vació o nulo podrá ser eso.
  #7 (permalink)  
Antiguo 21/10/2012, 08:22
 
Fecha de Ingreso: octubre-2012
Ubicación: Colombia / Barranquilla
Mensajes: 6
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Problema con IF - ELSE

AL fin pude solucionar el problema y de una forma mas fácil ("Esto de programar casualmente") pero bueno cambie el código mucho para este problema gracias a todos este es el codigo.

Código PHP:
<?php session_start();
include 
"app/conexion.php";
error_reporting(E_ALL);
 
ini_set("display_errors"1);
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <title>Tu Cuenta</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" href="css/reset.css" type="text/css" media="screen">
    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
    <link rel="stylesheet" href="css/grid.css" type="text/css" media="screen">  
    <script src="js/jquery-1.7.1.min.js" type="text/javascript"></script>
    <script src="js/cufon-yui.js" type="text/javascript"></script>
    <script src="js/cufon-replace.js" type="text/javascript"></script>
    <script src="js/Vegur_500.font.js" type="text/javascript"></script>
    <script src="js/Ropa_Sans_400.font.js" type="text/javascript"></script> 
    <script src="js/FF-cash.js" type="text/javascript"></script>    
    <script src="js/script.js" type="text/javascript"></script>  
    <!--[if lt IE 8]>
    <div style=' clear: both; text-align:center; position: relative;'>
        <a href="http://windows.microsoft.com/en-US/internet-explorer/products/ie/home?ocid=ie6_countdown_bannercode">
            <img src="http://storage.ie6countdown.com/assets/100/images/banners/warning_bar_0000_us.jpg" border="0" height="42" width="820" alt="You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today." />
        </a>
    </div>
    <![endif]-->
    <!--[if lt IE 9]>
         <script type="text/javascript" src="js/html5.js"></script>
        <link rel="stylesheet" href="css/ie.css" type="text/css" media="screen">
    <![endif]-->
</head>
<!-- Agregado Inicial -->

<!-- Agregado Final -->
<body id="page5">
    <!--==============================header=================================-->
    <header>
        <div class="border-bot">
            <div class="main">
                <h1><a href="index.php">Farmacia Torres</a></h1>
                <nav>
                    <ul class="menu">
                        <li><a href="index.php">Inicio</a></li>
                        <li><a href="premios.php">Premios</a></li>
                        <li><a class="active" href="dashboard.php">Tu Cuenta</a></li>
                        <li><a href="empresa.php">Empresa</a></li>
                        <li><a href="contacto.php">Contacto</a></li>
                    </ul>
                </nav>
                <div class="clear"></div>
            </div>
        </div>
    </header>
    <!--==============================content================================-->
    <section id="content"><div class="ic">Creado el 07 de Septiembre de 2012!</div>
        <div class="main">
            <div class="container_12">
                <div class="wrapper">
                    <article class="grid_8">
                        <h3>Estado de la Factura</h3>
                        <?php
                        $numver
=$_REQUEST["numver"];
                        
$numfac=$_REQUEST["numfac"];
                        
$cedula=$_REQUEST["cedula"];
                        
$result mysql_query("SELECT n_verificacion,n_facturas FROM FT_FACTURAS WHERE n_verificacion='$numver' AND n_facturas='$numfac'");
                        if(
mysql_num_rows($result) > 0){
                        echo 
mysql_num_rows($result);
                        }else{
                        
mysql_query("INSERT INTO FT_FACTURAS(f_n_cedula, n_verificacion, n_facturas) VALUES (".$cedula.", ".$numver.", ".$numfac.")");
                        echo 
"Factura registrada con exito. Pendiente de Aprobacion";
                        }
                        
?>
                    </article>
                    <article class="grid_4">
                        <div class="indent-top indent-left">
                            <div class="wrapper p3">
                                <h3>Bienvenido</h3>
                            <!--    <figure class="img-indent-r"><a href="#"><img src="images/page1-img1.png" alt=""></a></figure> 
                                <div class="extra-wrap">
                                    <strong class="title-1">Tell Your<strong>Friends</strong><em>About</em><em>Our Cafe</em></strong>
                                </div> -->
                                <?php
                                
if (isset($_SESSION['k_username'])) {
                                echo 
'<b>'.$_SESSION['k_username'].'</b>.';
                                echo 
'<p><a href="logout.php">Logout</a></p>';
                                }else{
                                echo 
'Anonimo';
                                echo 
'<p><a href="index.php">Login</a></p>
                                <p><a href="registro.html">Registrate</a></p>'
;
                                }
                                
?> 
                            </div>
                            <h3 class="p1">Latest News</h3>
                            <p class="prev-indent-bot">24 Hour Emergency Towing</p>
                            <p class="p0">Monday - Friday: 7:30 am - 6:00</p>
                            <p class="prev-indent-bot">Saturday: 7:30 am - Noon</p>
                            <p class="img-indent-bot">Night Drop Available</p>
                            <dl>
                                <dt class="prev-indent-bot">Demolink.org 8901 Marmora Road, Glasgow, D04 89GR.</dt>
                                <dd><span>Telephone:</span>+1 959 552 5963;</dd>
                                <dd><span>FAX:</span>+1 959 552 5963</dd>
                                <dd><span>E-mail:</span><a href="#">[email protected]</a></dd>
                            </dl>
                        </div>
                    </article>
                </div>
            </div>
        </div>
    </section>
    <!--==============================footer=================================-->
    <footer>
        <div class="main">
            <div class="container_12">
                <div class="wrapper">
                    <div class="grid_3">
                        <div class="spacer-1">
                            <a href="index.php"><img src="images/footer-logo.png" alt="Farmacia Torres"></a>
                        </div>
                    </div>
                    <div class="grid_5">
                        <div class="indent-top2">
                            <p class="prev-indent-bot">&copy; 2012 Farmacia Torres</p>
                            PBX: (5) 368 0323 Email: <a href="#">[email protected]</a>
                        </div>
                    </div>
                    <div class="grid_4">
                        <ul class="list-services">
                            <li><a class="item-1" href="#"></a></li>
                            <li><a class="item-2" href="#"></a></li>
                            <li><a class="item-3" href="#"></a></li>
                            <li><a class="item-4" href="#"></a></li>
                        </ul>
                        <span class="footer-text">&copy; 2012 <a class="link color-2" href="#">Farmacia Torres</a></span>
                    </div>
                </div>
            </div>
        </div>
    </footer>
    <script type="text/javascript"> Cufon.now(); </script>
</body>
</html>
Gracias a rodrigo por ayuda y pues espero seguir participando en la comunidad.
  #8 (permalink)  
Antiguo 21/10/2012, 09:52
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Problema con IF - ELSE

Al menos para que sepas que es lo que realmente ocurre y porque no te funcionaba...

Analicemos lo que has hecho...

Código PHP:
Ver original
  1. //código...
  2. if($row = mysql_fetch_array($result)){
  3. if($numver = $row['n_verificacion'] && $numfac = $row['n_facturas']){
  4. //mas código...

Hay no estas comparando, estas asignando, cuando usas un solo signo igual(=) asignas el valor a la variable, para comparar que una variable es igual en valor a otra se usa doble signo igual(==), por eso jamas entrará en else....
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #9 (permalink)  
Antiguo 22/10/2012, 06:43
 
Fecha de Ingreso: octubre-2012
Ubicación: Colombia / Barranquilla
Mensajes: 6
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Problema con IF - ELSE

Cita:
Iniciado por Nemutagk Ver Mensaje
Al menos para que sepas que es lo que realmente ocurre y porque no te funcionaba...

Analicemos lo que has hecho...

Código PHP:
Ver original
  1. //código...
  2. if($row = mysql_fetch_array($result)){
  3. if($numver = $row['n_verificacion'] && $numfac = $row['n_facturas']){
  4. //mas código...

Hay no estas comparando, estas asignando, cuando usas un solo signo igual(=) asignas el valor a la variable, para comparar que una variable es igual en valor a otra se usa doble signo igual(==), por eso jamas entrará en else....
que mas amigo gracias por responder te cuento que en momento de funcionar el código con = o con == entra al if pero al else no anteriormente lo tenia así pero como entro al if no le di importancia de todas formas son reglas y es bueno tenerlo en cuenta ya que puede empeorar corregir algún problema en el código (sabes dios si después de corregir era eso lo que no dejaba que solucionara el problema) de igual forma gracias por la aclaración nos vemos.

Etiquetas: ifelse
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 02:53.