O que há de errado aqui?

  • Autor Autor zking
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
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?
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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 edição por um 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 edição:
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 edição:
Pues ya lo sabes, esa asignación es lo que esta tronando $estado = $estados->num_rows
 
Voltar
Topo