Foros del Web » Programando para Internet » PHP »

No encuentro la falla :S

Estas en el tema de No encuentro la falla :S en el foro de PHP en Foros del Web. Tengo esta tabla: CREATE TABLE mensajes ( msgid int(9) NOT NULL auto_increment, de char(255) NOT NULL, para char(255) NOT NULL, asunto char(255) NOT NULL, mensaje ...
  #1 (permalink)  
Antiguo 25/04/2006, 16:30
Saldu
Invitado
 
Mensajes: n/a
Puntos:
No encuentro la falla :S

Tengo esta tabla:

CREATE TABLE mensajes (
msgid int(9) NOT NULL auto_increment,
de char(255) NOT NULL,
para char(255) NOT NULL,
asunto char(255) NOT NULL,
mensaje longtext NOT NULL,
fecha char(255) NOT NULL,
leido int(10) NOT NULL default '0',
PRIMARY KEY (msgid)
) TYPE=MyISAM


La idea, es que.. el script se fije, si tiene mensaje o no. Si dice leido=1 significa que el mensaje "nuevo" ya fue leído. Si tiene leido=0 es que todabía no lo leyó. No sé cuál es la falla. pero por alguna razón, no me dice ni SI, ni NO. La idea es que si tiene mensaje tire "SI" si no tiene mensaje que tire "NO"
Directamente, no tira nada.. me manda la pantalla en blanco. Si me pueden ayudar, mil gracias. Ponganme el código bien puesto, y aclarenme cuáles fueron mis errores..


<?php
session_start();
require_once('../conexion.php');
include("fecha.php");
if (isset($_SESSION['Auth']) && $_SESSION['Auth'] == 'YES') {
// Aquí tiene acceso
}else{
// Aquí no tiene acceso
echo "<script>window.location='../prohibido.php?error=No tiene acceso al sistema!!';</script>";
}
?>
<META http-equiv=refresh content=10>
<?php
$nickUsuarioL=$_SESSION['codigoUsuario'];
$i = 1;
$query = mysql_query ("SELECT * FROM mensajes WHERE para=$nickUsuarioL and leido =1 order by fecha DESC");
$tiene="Si";
while ( $row = mysql_fetch_array($query) ) {
$tiene=($row['leido']=="0")?"Si":"No";
if ( $tiene != "Si" ) {

}
else {
$query = mysql_query ("Update mensajes Set leido =0 WHERE idMensaje = " . $row["idMensaje"]);
$j = $i -1;
echo "<script>alert('Haz recivido un mensaje nuevo!')</script>";
}
}
?>
  #2 (permalink)  
Antiguo 25/04/2006, 20:26
Avatar de axy108  
Fecha de Ingreso: diciembre-2003
Ubicación: En frente de mi Computadora
Mensajes: 415
Antigüedad: 14 años
Puntos: 0
pues si a tirar te refieres con desplegar en la pantalla si o no, yo no veo ningun echo de la variable $tiene

asi que supongo que por ahi debe de pasar algo por lo demas no veo ningun problema

bueno espero te sirva SALUDOS

__________________
Todos somos muy ignorantes :pensando: . Lo que ocurre es que no todos ignoramos las mismas cosas ;-) .... Albert Einstein :cool:
  #3 (permalink)  
Antiguo 25/04/2006, 20:45
Avatar de bistoco  
Fecha de Ingreso: marzo-2006
Mensajes: 141
Antigüedad: 11 años, 9 meses
Puntos: 0
"SELECT * FROM mensajes WHERE para=$nickUsuarioL and leido =1 order by fecha DESC"...

el campo para es numerico o string...por ahi puede estar el problema

saludos
__________________
Share what you know...learn what you don't :si:
  #4 (permalink)  
Antiguo 26/04/2006, 15:19
Saldu
Invitado
 
Mensajes: n/a
Puntos:
No soy muy experto en el tema.. es numérico el campo.. qué puedo hacer para mejorarlo?

osea.. alguien, podría pasarme el código corregido? xq.. no se me ocurre nada,,
  #5 (permalink)  
Antiguo 26/04/2006, 16:02
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 14 años, 5 meses
Puntos: 21
checa bien esta linea

$tiene=($row['leido']=="0")?"Si":"No";
__________________
gerardo
  #6 (permalink)  
Antiguo 27/04/2006, 10:33
Avatar de axy108  
Fecha de Ingreso: diciembre-2003
Ubicación: En frente de mi Computadora
Mensajes: 415
Antigüedad: 14 años
Puntos: 0
Cita:
Iniciado por Saldu
No soy muy experto en el tema.. es numérico el campo.. qué puedo hacer para mejorarlo?

osea.. alguien, podría pasarme el código corregido? xq.. no se me ocurre nada,,
Pues segun tu script que crea la base de datos es char(255), en ese caso deberia de ir asi:

SELECT * FROM mensajes WHERE para='$nickUsuarioL' and leido =1 order by fecha DESC

y porque no poner un:

echo mysql_error()

para ver si el error esta en tu consulta

saludos.

__________________
Todos somos muy ignorantes :pensando: . Lo que ocurre es que no todos ignoramos las mismas cosas ;-) .... Albert Einstein :cool:
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 19:22.