Que hay de mal aqui?

zking Seguir

Dseda
Programador
Verificación en dos pasos activada
Desde
15 Jun 2013
Mensajes
1.084
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?
 
U

Usuario eliminado 44716

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:

iniciopublic

Préstamo
Pi
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
16 Jul 2013
Mensajes
5.063
¿Que es lo que no te funciona no te sale ?

prueba con mysql_fetch_array si es lo que estoy pensando !
 

UserAlfa

Beta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
25 Mar 2014
Mensajes
90
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)
 

lombervid

Zeta
Verificación en dos pasos activada
Desde
29 Abr 2011
Mensajes
1.509
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:

Porelian

Beta
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
4 Jul 2014
Mensajes
31
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:

jcdiaz

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
26 Jun 2014
Mensajes
115
Pues ya lo sabes, esa asignación es lo que esta tronando $estado = $estados->num_rows
 
Arriba