Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/05/2009, 18:15
Avatar de Sourcegeek
Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Problema con PHP

Hola, soy nuevo por aca, espero puedan ayudarme, bueno,
aqui va mi problema:

Tengo una web en PHP, corriendo en mi pc, es un Sistema de usuarios
con un sistema de noticias, entonces como los tenia separados, los
estoy juntando.
En el index.php tengo una variable que checa si el usuario esta logueado
o no, si no lo esta muestra un formulario de login, pero si lo esta muestra
perfil y todo eso, entonces conecta a la base de datos y hace la consulta
para obtener cuandos mensajes privados tiene el usuario y mostrarlos.
Ahora, para mostrar las noticias hago un INCLUDE a noticias.php que
tambien conecta a la BD y hace unas consultas para mostrar las noticias,
pero el problema es que index.php me muestra un error:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in NOMEDEJOINCLUIRENLACES on line 56

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in NOMEDEJOINCLUIRENLACES on line 67

Al parecer son errores con los bucles que uso en noticias.php para
mostrar las noticias, lo raro es que si entro directamente a noticias.php
todo sale bien!..

Aca muestro el codigo de ambos:


Index.php
Código:
<?php
{
include("config.php");
include("pfvariables.php");
}
$separador = " \x1F \x1F";
$separador2 = "\x1F \x1F \x1F \x1F \x1F \x1F \x1F";

if($_COOKIE[id] && $_COOKIE[nick] && $_COOKIE[contrasena]){

# Mensajes

{ 
$msg_query = mysql_query("SELECT * FROM mensajes WHERE nuevo='0' and destinatario='$_COOKIE[nick]'");
$nuevos = mysql_num_rows($msg_query);

$msg2_query = mysql_query("SELECT * FROM mensajes WHERE destinatario='$_COOKIE[nick]'");
$total = mysql_num_rows($msg2_query);

}


echo ' <center>';
echo _BIENVENIDO.", <b>".$_COOKIE[nick]."</b>";
echo ' <br>';
echo"<a href=".$pagina."?".$get."=perfil>"._EDITAR_PERFIL."</a>";
echo $separador2;
echo $separador2;
if($puntos == "si"){

echo"<a href=\"javascript:;\" onClick=\"window.open('puntos.php?show=puntos','','resizable=no, height=120, width=300,screenX=250,screenY=300,top=200,left=250');\">"._PUNTOS_TITULO."</a>";

}
echo $separador2;
echo $separador2;
echo"<a href=".$pagina."?".$get."=mensajes>"._MENSAJES_PRIVADOS."</a> (".$nuevos."/".$total.")";
echo $separador2;
echo $separador2;
echo"<a href=desconectar.php>"._DESCONECTAR."</a>";
echo ' </center>';


} else {
echo ' <center>';
echo _BIENVENIDO.", <b>"._ANONIMO."</b>";
 echo"<form name=\"Login\" method=\"post\" action=\"entrar.php\">";
echo"  "._USUARIO_LOGIN."";
echo"<input type=\"text\" name=\"username\" id=\"username\" value=\"".$_GET[nick]."\">";
echo"  "._CONTRASENA_LOGIN."";
echo"<input type=\"password\" name=\"password\" id=\"password\" value=\"".$_GET[contrasena]."\">";
echo"<input type=\"submit\" name=\"entrar\" value=\""._LOGIN."\">";
echo $separador2;
echo"<a href=".$pagina."?".$get."=registro>Registrar</a>";
echo $separador;
echo"<a href=".$pagina."?".$get."=contrasena>"._CONTRASENA."</a>";


}
?>

<? include ('noticias.php');?>

Noticias.php
Código:
<?

function conectar() 
{ 
	$base_de_datos = "noticias";
	$db_usuario = "root"; 
	$db_password = "******"; 
   
	if (!($link = mysql_connect("localhost", $db_usuario, $db_password))) 
	{ 
		echo "Error conectando a la base de datos."; 
		exit(); 
	} 
	if (!mysql_select_db($base_de_datos, $link)) 
	{ 
		echo "Error seleccionando la base de datos."; 
		exit(); 
	} 
	return $link; 
} 

$db = conectar();


$registros = 3;

if (!$pagina) { 
    $inicio = 0; 
    $pagina = 1; 
} 
else { 
    $inicio = ($pagina - 1) * $registros; 
} 


?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "OTROENLACE">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Noticias</title>
<style>
	body { font-family: arial; font-size:12px}
</style>
</head>

<body>
	<?
	$resultados = mysql_query("SELECT id_noticia FROM noticias WHERE visible = 1");
	$total_registros = mysql_num_rows($resultados); 
	$resultados = mysql_query("SELECT * FROM noticias WHERE visible = 1 ORDER BY fecha DESC LIMIT $inicio, $registros");	
	$total_paginas = ceil($total_registros / $registros); 		  			

	if($total_registros) {
	
		while($row=mysql_fetch_array($resultados)) {
			
echo "<hr><b><span class='Estilo60'>$row[titulo]</span><br><p>$row[avance]</p><br><div align='center'><b>$row[autor] | $row[fecha] | $row[categoria] |
<a href='ver.php?id=$row[id_noticia]'>VER</B></div></a><br> <hr>";
			
		}
		
	} else {
		echo "<font color='darkgray'>(sin resultados)</font>";
	}
	
	mysql_free_result($resultados);				
	
	if($total_registros) {
		
		echo "<center>";
		
		if(($pagina - 1) > 0) {
			echo "<a href='noticias.php?pagina=".($pagina-1)."'>< Anterior</a> ";
		}
		
		for ($i=1; $i<=$total_paginas; $i++){ 
			if ($pagina == $i) {
				echo "<b>".$pagina."</b> "; 
			} else {
				echo "<a href='noticias.php?pagina=$i'>$i</a> "; 
			}	
		}
	  
		if(($pagina + 1)<=$total_paginas) {
			echo " <a href='noticias.php?pagina=".($pagina+1)."'>Siguiente ></a>";
		}
		
		echo "</center>";
		
	}

	?>
</body>
</html>


Saludos y gracias!