Foros del Web » Programando para Internet » PHP »

PHP OO viarles en un if no me funciona

Estas en el tema de viarles en un if no me funciona en el foro de PHP en Foros del Web. hola tengo un pequeño problema podran ayudarme? gracias de antemano :D tengo mi codigo que viene de una pagina y cree otra pagina para poder ...
  #1 (permalink)  
Antiguo 21/11/2013, 18:16
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 3 meses
Puntos: 0
Mensaje viarles en un if no me funciona

hola tengo un pequeño problema podran ayudarme? gracias de antemano :D

tengo mi codigo que viene de una pagina y cree otra pagina para poder redireccionar si es que viene con un dato de activo pase a una pantalla y si viene inactivo pase a otra pantalla pero solo logro hacer que pase a una no me respeta el if espero me puedan ayudar

Código PHP:
Ver original
  1. <?php
  2.  
  3.     $dependencia = $_GET['DEPENDENCIA'];
  4.      $_SESSION['dependencia'] = $dependencia;
  5.      
  6. $conexion = mysql_connect('localhost', 'root','');
  7. $sql=  "select estado from dependencias where $dependencia = dependencia ";
  8.         $ejecutar = mysql_query($sql,$conexion);
  9.            
  10.             if ( $ejecutar = "activa"){
  11.                 header ("Location: pantallaActiva.php") ;
  12.             }
  13.             else {
  14.                 header ("Location: pantallaInactiva.php");  
  15.             }
  16.            
  17.  
  18.  
  19. ?>
  #2 (permalink)  
Antiguo 21/11/2013, 18:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: viarles en un if no me funciona

Tiene todo el sentido del mundo, tu no estás comparando, ¡estás asignando!

El operador de comparación es == y no =, consulta el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 21/11/2013, 18:23
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: viarles en un if no me funciona

de todos modos si pongo "==" cuando comparo solo me manda a uno sin importarle cual sea el valor u.u (gracias por contestar tan rapido
  #4 (permalink)  
Antiguo 21/11/2013, 18:29
Avatar de C2am  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 2.005
Antigüedad: 15 años, 3 meses
Puntos: 306
Respuesta: viarles en un if no me funciona

¿y a cual de las opciones te manda?
¿que obtienes realmente de la consulta?
__________________
El mundo nada puede contra un hombre que canta en la miseria.
-- Ernesto Sábato--
  #5 (permalink)  
Antiguo 21/11/2013, 18:32
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: viarles en un if no me funciona

supestamente de la consulta obtengo el valor de activa o inactiva solamente pero siempre me manda al else ._. sera que esta mal mi consulta? segun yo si esta bien que estoy mal?
  #6 (permalink)  
Antiguo 21/11/2013, 18:40
Avatar de C2am  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 2.005
Antigüedad: 15 años, 3 meses
Puntos: 306
Respuesta: viarles en un if no me funciona

imprime en pantalla lo que trae la consulta.

Y para mí que esto:
Código PHP:
Ver original
  1. $sql=  "select estado from dependencias where $dependencia = dependencia ";

debería ser:
Código PHP:
Ver original
  1. $sql=  "select estado from dependencias where dependencia = $dependencia ";
__________________
El mundo nada puede contra un hombre que canta en la miseria.
-- Ernesto Sábato--
  #7 (permalink)  
Antiguo 21/11/2013, 19:16
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: viarles en un if no me funciona

gracias C2am de todos modos con cualquiera de las 2 formas de $sql q pusiste arriba no me imprime nada pero entonces el problema esta en mi consulta?segun yo esta bien ayuda
  #8 (permalink)  
Antiguo 21/11/2013, 19:25
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: viarles en un if no me funciona

$ejecutar = mysql_query($sql,$conexion); ejecuta la consulta, pero devuelve un recurso de acceso a resultados y debes leerlos, ejemplo:

Código PHP:
Ver original
  1. $resultados = mysql_query($sql, $conexion);
  2.  
  3. // Hay que saber si hay algo para consultar
  4. if(mysql_num_rows($resultados) > 0) {
  5.       // Sí hay resultados, ahora hay que leer
  6.       $registro = mysql_fetch_assoc($resultados);
  7.       $ejecutar = $registro['estado'];
  8.  
  9.       // Ahora sí puedes comparar
  10. } else {
  11.      // No hay resultados
  12.      // Aquí deberías mostrar un mensaje de error
  13. }
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 21/11/2013, 19:34
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: viarles en un if no me funciona

triby me marca error en el
Código PHP:
Ver original
  1. if(mysql_num_rows($resultados) > 0)

ya que pegue tal y como lo pusiste ya que estoy un poco desesperado

Código PHP:
Ver original
  1. <?php
  2.  
  3.  $dependencia = $_GET['DEPENDENCIA'];
  4.     $dependencia = $_GET['dependencia'];
  5.      $_SESSION['dependencia'] = $dependencia;
  6.      
  7.         $conexion = mysql_connect('localhost', 'root','');
  8.         $sql=  "select estado from dependencias where dependencia = '$dependencia' ";
  9.         $resultados = mysql_query($sql,$conexion);
  10.  
  11.            
  12.  
  13.                 // Hay que saber si hay algo para consultar
  14.                 if(mysql_num_rows($resultados) > 0) {
  15.                       // Sí hay resultados, ahora hay que leer
  16.                       $registro = mysql_fetch_assoc($resultados);
  17.                       $ejecutar = $registro['estado'];
  18.                  
  19.                       // Ahora sí puedes comparar
  20.                 } else {
  21.                      // No hay resultados
  22.                      // Aquí deberías mostrar un mensaje de error
  23.                 }
  24.  
  25.        
  26.        
  27.         //  echo $ejecutar;
  28.            
  29.         //  if ( $ejecutar == "inactiva"){
  30.         //      header ("Location: muestraDai3.php") ;
  31.         //  }
  32.         //  else {
  33.         //      header ("Location: index.php");  
  34.         //  }
  35.         // 
  36.  
  37.  
  38. ?>

y me sale el siguiente error :

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in ..\redireccionando.php on line 15
  #10 (permalink)  
Antiguo 21/11/2013, 19:57
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Respuesta: viarles en un if no me funciona

Hola.

Prueba el siguiente código:
Código PHP:
<?php
session_start
();

$dependencia $_GET['dependencia'];
$_SESSION['dependencia'] = $dependencia;

if ( ! (
$conexion mysql_connect('localhost''root'''))) {
    echo 
'Error conectando a la base de datos.';
    
    exit();
}

// Aquí te faltó lo siguiente, donde seleccionas la base de datos donde está la tabla "dependencias"
if ( ! mysql_select_db('nombre_de_la_base_de_datos'$conexion)) {
    echo 
'Error seleccionando la base de datos.';
    
    exit();
}

$resultado mysql_query("SELECT estado FROM dependencias WHERE dependencia = '$dependencia'"$conexion);

if (
mysql_num_rows($resultado) > 0) {
    
$registro mysql_fetch_assoc($resultado);
    
    if (
$registro['estado'] == 'inactiva') {
        
header("Location: muestraDai3.php");
    } else {
        
header("Location: index.php");  
    }
} else {
    echo 
'No se ha encontrado el estado de la dependencia.';
}
Si sigue dándote algún error, imprime el valor de la variable $dependencia (colocando echo $dependencia; debajo de $dependencia = $_GET['dependencia'];) para ver si estás recibiendo correctamente el valor por GET. Otra posibilidad es que la consulta esté mal, ya sea por referenciar a un campo que no está en la tabla o que la tabla tenga otro nombre.

Un saludo.
  #11 (permalink)  
Antiguo 21/11/2013, 20:11
 
Fecha de Ingreso: enero-2013
Mensajes: 68
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: viarles en un if no me funciona

listo!!! me funciono!! viendo con el ejemplo de RabidFish me di cuenta de mi error como decía primero lo que me comentaron que faltaba leer lo que traía y después la validación pero por fin muchas gracias a todos lo logre y si es el código de RabidFish el q me salio bien


Código PHP:
Ver original
  1. <?php
  2. $dependencia = $_GET['DEPENDENCIA'];
  3. $_SESSION['dependencia'] = $dependencia;
  4.  
  5.             if ( ! ($conexion = mysql_connect('localhost', 'root', ''))) {
  6.                 echo 'Error conectando a la base de datos.';                 
  7.                 exit();
  8.             }
  9.             if ( ! mysql_select_db('Almacenes', $conexion)) {
  10.                 echo 'Error seleccionando la base de datos.';                
  11.                 exit();
  12.             }
  13.             $resultado = mysql_query("SELECT estado FROM dependencias WHERE dependencia = '$dependencia'", $conexion);
  14.             if (mysql_num_rows($resultado) > 0) {
  15.                 $registro = mysql_fetch_assoc($resultado);
  16.                 if ($registro['estado'] == 'activo') {
  17.                     header("Location:muestraDai3.php");
  18.                 } else {
  19.                     header("Location:index.php");  
  20.                 }
  21.             }else {
  22.                 // No hay resultados
  23.                     echo 'No se ha encontrado el estado de la dependencia.';
  24.              }
  25.  
  26. ?>
gracias a todos x su tiempo :D

Etiquetas: mysql, select, sql
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 16:07.