Foros del Web » Programando para Internet » PHP »

Consulta, sentencia if no me compara los dos campos!

Estas en el tema de Consulta, sentencia if no me compara los dos campos! en el foro de PHP en Foros del Web. 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'"); ...
  #1 (permalink)  
Antiguo 17/11/2015, 17:04
 
Fecha de Ingreso: noviembre-2015
Mensajes: 2
Antigüedad: 8 años, 5 meses
Puntos: 0
Consulta, sentencia if no me compara los dos campos!

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

Última edición por aguuuc; 17/11/2015 a las 17:19 Razón: dudas
  #2 (permalink)  
Antiguo 18/11/2015, 02:18
 
Fecha de Ingreso: mayo-2013
Mensajes: 169
Antigüedad: 10 años, 11 meses
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í.
  #3 (permalink)  
Antiguo 18/11/2015, 02:59
 
Fecha de Ingreso: noviembre-2015
Mensajes: 2
Antigüedad: 8 años, 5 meses
Puntos: 0
Respuesta: Consulta, sentencia if no me compara los dos campos!

Hola, gracias por responder.. no entendi muy bien, decis que antes de mi if($cantidad ==0) haga otro if con !== FALSE? o que cambie uno por el otro, perdon es que no se mucho y estoy aprendiendo! gracias!

tambien me esta dando este error cuadno pongo un "or die mysqlerror" en el query!

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc='toro'' at line 1

donde toro seria el animal que ingreso y desc el campo de la tabla!
  #4 (permalink)  
Antiguo 18/11/2015, 06:11
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Consulta, sentencia if no me compara los dos campos!

Una recomendación amigo si estas aprendiendo te recomiendo que le eches un vistazo a esto

http://www.forosdelweb.com/f18/anunc...oleta-1008145/

La extensión mysql esta obsoleta desde hace tiempo.

Igualmente utiliza http://php.net/manual/es/function.mysql-error.php para saber si la consulta te arroja algún error.
  #5 (permalink)  
Antiguo 18/11/2015, 06:18
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Consulta, sentencia if no me compara los dos campos!

has un var_dump a $cantidad para ver si esta arrojando resultados ya que de ella depende la condicion, alli te vas a dar cuenta de donde esta el problema,otra cosa cierra las comillas simples aqui:

Código PHP:
Ver original
  1. $consulta= ("select * from tipo_cat_ani where id_usuario='$id_usuario' and  desc='$animalito'");

y utiliza mejor mysqli porque a futuro te va a dar problemas la migración cuando tu codigo este mas avanzado
__________________
[email protected]
HITCEL

Etiquetas: select, sentencia, sql, tabla
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 21:20.