Foros del Web » Programando para Internet » PHP »

Problema con if

Estas en el tema de Problema con if en el foro de PHP en Foros del Web. Hola!! Tengo este codigo para una biblioteca donde dependiendo de si en la base de datos esta con 1 (prestado) o 0 (disponible) te saque ...
  #1 (permalink)  
Antiguo 05/05/2005, 03:46
 
Fecha de Ingreso: junio-2004
Mensajes: 88
Antigüedad: 13 años, 5 meses
Puntos: 0
Problema con if

Hola!!
Tengo este codigo para una biblioteca donde dependiendo de si en la base de datos esta con 1 (prestado) o 0 (disponible) te saque la ficha del libro y si esta prestado o no.
El codigo es este:

<?php
if ($row[prestado]=="1") {
$estado = "Prestado";
}
else {
$estado = "Disponible";
}
?>

Luego viene otro codigo donde hace la consulta:
<?php
include("config.php");
$resp = mysql_query("select * from biblioteca where (id='$id')");
while($row=mysql_fetch_array($resp))
{

echo("
<table width=570px>
<tr>
<td class='titularnoticias'>$row[titulo]</td>
</tr>
<tr class='fuentenoticia'>
<td class='fechanoticia'>Autor:</td></tr>
<tr><td class='cuerponoticianegro'>$row[autor]</td></tr>
<tr><td class='fuentenoticia'>Editorial:</td></tr>
<tr><td class='cuerponoticianegro'>$row[editorial]</td></tr>
<tr><td class='fuentenoticia'>Año:</td></tr>
<tr><td class='cuerponoticianegro'>$row[año]</td></tr>
<td class='fechanoticia'>Estado:</td></tr>
<tr><td class='cuerponoticianegro'>$estado</td></tr> AQUI SACA EL ESTADO DEL LIBRO
<tr><td> <input type='button' value='+ Volver a los resultados de la búsqueda' class='botonatras' onclick='history.go(-1)'></td></tr></table>
<tr><td class='solicitar'><a href=solicitarbib.php?id=$row[id] class='solicitarinfo'>+ SOLICITAR LIBRO</a> </td></tr>
<br>
</table>
");
}
?>

El problema es que me salen todos disponibles, no sale prestado cuando es 1 en la base de datos.
Gracias
  #2 (permalink)  
Antiguo 05/05/2005, 04:24
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 14 años, 6 meses
Puntos: 13
En mi modesto conocimiento creo que el primer código deberías ponerlo después de la consulta no antes, y quizá quitarle las comillas a "1".
Prueba a ver.
  #3 (permalink)  
Antiguo 05/05/2005, 04:33
 
Fecha de Ingreso: junio-2004
Mensajes: 88
Antigüedad: 13 años, 5 meses
Puntos: 0
Nada, no funciona. Lo he puesto detras de la consulta y sale vacio.
  #4 (permalink)  
Antiguo 05/05/2005, 05:05
Avatar de Pazosele  
Fecha de Ingreso: marzo-2005
Ubicación: BCN - España
Mensajes: 200
Antigüedad: 12 años, 9 meses
Puntos: 0
Cita:
Iniciado por bonemachine
<?php
if ($row[prestado]=="1") {
$estado = "Prestado";
}
else {
$estado = "Disponible";
}
?>
Yo creo que el problema lo tienes ahi, no te reconoce la comparacion.. a mi me ha pasado algunas veces. Para comprobarlo, fuerza $row[prestado]=1; y luego haz la comparacion...
Si es eso mi solucion es chapucera, pero a veces funciona. prueba alguna de estas:
-cambia if ($row[prestado]=="1") por (1==$row[prestado])
-cambia if ($row[prestado]=="1") por ($row[prestado]!="0")
-prueba sin las comillas en el 1 o el 0

la verdad no me acuerdo mucho porque era.. pero a mi tb me paso algo asi.. suerte!!!
(si alguioen le puede dar una respuesta mas tecnica, pos mejor...)
__________________
Share our Knowledge!
Adura Vita!
  #5 (permalink)  
Antiguo 05/05/2005, 05:12
 
Fecha de Ingreso: junio-2004
Mensajes: 88
Antigüedad: 13 años, 5 meses
Puntos: 0
Nada de nada: o salen todos prestados, o salen todos disponibles o salen vacios. No hay ninguna otra forma de hacerlo???
  #6 (permalink)  
Antiguo 05/05/2005, 05:16
 
Fecha de Ingreso: junio-2004
Mensajes: 88
Antigüedad: 13 años, 5 meses
Puntos: 0
he hecho una prueba y he puesto la consulta para que salgan solo los que estan prestados, con prestado=1 y si salen solo los prestados. Pero cuando pongo la compraracion no parece que lo reconozca

Última edición por bonemachine; 05/05/2005 a las 05:22
  #7 (permalink)  
Antiguo 05/05/2005, 05:22
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 14 años, 6 meses
Puntos: 13
bueno, $row["prestado"]!=
En lugar de poner ==, dale la vuelta y haz diferente de. A mi a veces me ha pasado y al darle la vuelta funciona.
Prueba eso y:
Poner ese código después de la consulta.
Definir la variable antes de la consulta $prestado=$prestado
ponerle las comillas a prestado dentro de $row["prestado"], aunque según esto tampoco verías el resultado de $row[autor] etc.
  #8 (permalink)  
Antiguo 05/05/2005, 05:22
Avatar de Pazosele  
Fecha de Ingreso: marzo-2005
Ubicación: BCN - España
Mensajes: 200
Antigüedad: 12 años, 9 meses
Puntos: 0
para hacerlo simplemente antes de la komparacion pon esto:
$row[prestado]=1;
asi sabras que SEGURO vale 1
__________________
Share our Knowledge!
Adura Vita!
  #9 (permalink)  
Antiguo 05/05/2005, 05:25
Avatar de Pazosele  
Fecha de Ingreso: marzo-2005
Ubicación: BCN - España
Mensajes: 200
Antigüedad: 12 años, 9 meses
Puntos: 0
paradescartar que no sea otracosa lo que falla puedes hacer esto:

Código PHP:
<?php 
if ($row[prestado]=="1") {
$estado "Prestado";
echo 
$estado;
}
else {
$estado "Disponible";
echo 
$estado;
}
asi te mostrara por pantalla el valor de estado i de paso veras si va bien la comparacion..
__________________
Share our Knowledge!
Adura Vita!
  #10 (permalink)  
Antiguo 05/05/2005, 05:35
 
Fecha de Ingreso: junio-2004
Mensajes: 88
Antigüedad: 13 años, 5 meses
Puntos: 0
superbien, por fin ha salido. No se ni como ni por que.
Muchas gracias
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 06:41.