Que hay de mal aqui?

  • Autor Autor zking
  • Fecha de inicio Fecha de inicio
zking

zking

Dseda
Programador
Verificación en dos pasos activada
Soy nuevo en php y quise empezar mi propio script y tenia este codigo

PHP:
<? if($crow['Estado']==2){echo 'Proximamente';}?>
<? if($crow['Estado']==0){echo '<span style="color:red;">Finalizado</span>';}?>
<? if($crow['Estado']==1){echo '<span style="color:green;">En Emision</span>';}?>
pero vi que es una mala programacion asi que programarlo mejor y hice esto:

PHP:
if($estados = $db->query("SELECT Estado FROM animes")) {
		if($estado = $estados->num_rows) {
			if($estado == 3) {
				echo 'Proximamente';
			}elseif ($estado == 2){
				echo 'Finalizado';
			}else{
				echo 'En Emisión';
			}
		}
	}

Pero no funcion que hago mal?
 
Hola, no sé si este sea tu fallo porque no lo sabes:

$estado = $estados->num_rows

PHP: mysqli_result::$num_rows - Manual

Eso devuelve la cantidad de filas, no el resultado que quizás quieres obtener. ¿Es ese tu fallo [MENTION=44787]zasudark[/MENTION] y necesitas que te diga como obtener la fila en sí?
 
Última edición por un moderador:
¿Que es lo que no te funciona no te sale ?

prueba con mysql_fetch_array si es lo que estoy pensando !
 
Cuando pones:
if($estado = $estados->num_rows) {

"$estado" se carga con el numero de animes que tengas en tu BD y por siempre te marcara todos tus animes como "en emision"(Si es que tienes mas de 3 animes registrados)
 
Como ya te dijeron, lo que estas haciendo es capturar el número de resultados, no el valor de cada uno, lo que deberias de hacer es un while con un fetch_object o fetch_array.

Saludos.
 
Última edición:
El error esta en los ifs.. Se utiliza doble igual == para una operacion logica

Edit: Lei mal, en las primeras lineas. Pense que la falla era en la programacion pero la falla proviene en la idea. Como ellos te dijeron el num_rows te devuelve la cantidad de filas que resultaron de la pregunta en sql. Quizas lo que deseas es recorrerlo que lo puedes hacer mediante un while con fetch_array y de ahi controlar el valor. Perdon por mi equivocacion
 
Última edición:
Pues ya lo sabes, esa asignación es lo que esta tronando $estado = $estados->num_rows
 
Atrás
Arriba