Foros del Web » Programando para Internet » PHP »

Problema con PHP

Estas en el tema de Problema con PHP en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 07/05/2009, 18:15
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
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!
  #2 (permalink)  
Antiguo 07/05/2009, 21:23
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con PHP

El error te dice que el resource que le tratas de pasar a mysql_fetch_array() no es correcto, al parecer hubo un problema en la consulta. Agregale un or die(mysql_error()) a la consulta

mysql_query("SELECT * FROM tabla") or die(mysql_error());
  #3 (permalink)  
Antiguo 07/05/2009, 21:32
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Problema con PHP

A cual de los dos archivos y a cual linea?
  #4 (permalink)  
Antiguo 07/05/2009, 21:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con PHP

¿cual archivo y cual linea??



analizalo....


si lo haces en todos los scripts donde sea necesario, mejor!!!

así, siempre sabrías el error exacto, siempre....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 07/05/2009, 21:54
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Problema con PHP

Hice lo de agregar la linea pero nuevo error de sintaxis:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-3, 3' at line 1
  #6 (permalink)  
Antiguo 07/05/2009, 21:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con PHP

exacto!

ese es un error de sintaxis SQL

simplemente, esta mal formada la consulta o es ilógica...

bueno, ese no es problema de PHP....

en breve, al usar LIMIT x,y
x debe ser de un numero positivo mayor o igual a cero
y debe ser mayor o igual al primero (x) ¿se entiende?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 07/05/2009, 22:51
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Problema con PHP

Cita:
Iniciado por pateketrueke Ver Mensaje
exacto!

ese es un error de sintaxis SQL

simplemente, esta mal formada la consulta o es ilógica...

bueno, ese no es problema de PHP....

en breve, al usar LIMIT x,y
x debe ser de un numero positivo mayor o igual a cero
y debe ser mayor o igual al primero (x) ¿se entiende?

Podrias explicarlo mejor?
Ademas, si entro directamente a noticias.php si sale todo bien,
solo da el error cuando entro al index...
  #8 (permalink)  
Antiguo 07/05/2009, 23:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con PHP

mmm... explicar??

LIMIT -3, 3 (es como te sale en el error)

¿suena lógico un limite negativo inicial??

ahora, el como generas esto es el problema... ahora si, de PHP

Código PHP:
$inicio = ($pagina 1) * $registros
$inicio = 0;
$registros = 3;

(0 - 1) = -1
-1 * 3 = -3

¿de veras no se nota???

debes buscar la manera de solventar tu problema, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 08/05/2009, 18:29
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Problema con PHP

Cita:
debes buscar la manera de solventar tu problema, suerte!
Que crees que estoy haciendo?
Rascandome la panza o que?
Para que/ Porque crees que vine a postear mi problema en un foro??
Para que me ayudaran a resolverlo, porque yo no se tanto..

Ponte a pensar un poco la utilidad de los foros, no?
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 03:07.