Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/11/2015, 02:18
Amiancht
 
Fecha de Ingreso: mayo-2013
Mensajes: 169
Antigüedad: 11 años
Puntos: 25
Respuesta: Consulta, sentencia if no me compara los dos campos!

Cita:
Iniciado por aguuuc Ver Mensaje
Código:
case 5:  //alta animales
	
	include $_SERVER["DOCUMENT_ROOT"]."/conecto/conexion.php";

	$animalito=$_POST['texto_animal'];
	      
 if (!isset($_SESSION)) {
  		session_start();
	}


$id_usuario = $_SESSION['id_usuario'];
	

	$consulta= ("select * from tipo_cat_ani where id_usuario=$id_usuario and  desc='$animalito'");
	$var=mysql_query($consulta);
	$fila=mysql_fetch_array($var);
	$cantidad=mysql_num_rows($var);


	if ($cantidad ==0) {

	
 $nuevo_inv=("INSERT INTO tipo_cat_ani VALUES ('', $id_usuario, '$animalito')");

 $cargo=mysql_query($nuevo_inv);

  	echo '<script language = javascript>
		alert("Animal cargado con exito")
		self.location = "../altas/carga_animales.php"
		</script>';

          
	}
  		else {
			echo '<script language = javascript>
			alert("El animal ya existe")
			self.location = "../usuarios/pagina_usuario.php"
			</script>';

		}

break;
Tengo 1 tabla, tipo_cat_ani con los campos id_cat_ani, id_usuario, desc.. lo que quiero hacer es que al momento de cargar se fije si existe el usuario y el "animal"( desc), si existe me diga que existe y sino que lo cargue. funciona y carga, pero no me ejecuta la condicion, por mas que este lo carga igual.. espero me ayuden, soy nuevo en esto.. gracias
¿¿Sabes que mysql_num_rows puede devolver tambien FALSE cuando la funcion da error, y que FALSE puede ser evaluado igual a 0?? Por lo que puede que te este dando false y lo evalue igual 0.

Por eso, debes usar antes de la comparación de equivalencia o identico, otro if, o como veas algo así:
Código PHP:
Ver original
  1. <?php
  2. if($cantidad !== FALSE)
(!==) en vez de (!=).
Para saber si esta dando error o no. De la otra forma que tienes, siempre que de error va a decirte que no hay ninguno. Por eso debes comparar primero si te está dando error.

Al menos creo qe el error va por ahí.