error con MySQL

Iniciado por vnak, 10 Julio 2009, 17:00 PM

0 Miembros y 2 Visitantes están viendo este tema.

vnak

Hola.

Intentando crear mi página web me ha surgido un problema


"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/Index.php on line 36"

el código fuente es este:

<html>
<head>

<link rel="stylesheet" type="text/css" href="estilos.css">
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="funciones.js"></script>

</head>
<body>
<div id="contenedor">
    <div id="cabecera">
       Portal Web
    </div>
    <div id="cuerpo">
       <div id="lateral" class="degradado">
         
        <center><h1>Continguts</h1></center>
        <ul id="navy">
             <center><li><a href="javascript:cargarseccion('nuevanoticia')" style="text-decoration:none">Nueva Noticia</a></li>
             <li><a href="javascript:cargarseccion('login')" style="text-decoration:none">Entra</a></li>
             <li><a href="#">Otro enlace</a>
             <li><a href="#">Link chulo</a>
             <li><a href="#">Más enlaces</a>
             <li><a href="#">Otro último</a>
             </center>
             <br>
        </ul>
         
       
       </div>
       <div id="otrolado"><center><p></p></center></div>
       
         
       <?  include("Conexion.php");

    $seleccionar_noticias = mysql_query("SELECT * FROM noticias ORDER BY id DESC");

while($mostrar_noticias = mysql_fetch_array($seleccionar_noticias))
        $query = mysql_query($qry_stmt) or die(mysql_error());
        { echo "<div id='principal'> <p>
                <center>".$mostrar_noticias['Titulo']."</center><br>
                <center>".$mostrar_noticias['Contenido']."</center><br>
                <center>escrito por".$mostrar_noticias['Autor']."</center><br>
               
                </p></div><br>";}

 





      ?>

 




       
    </div>
    <div id="pie">
       © 2009 Alejandro Fernandez Tomas
    </div>
</div>
</body>
</html>


Alguien sabe que puede pasar?  Puede ser problema de que el archivo Conexion.php no conecta, uso Ubuntu así que quizás es problema de permisos o usuarios. Ayuda porfavor

LuffyFF

La consulta en el PHP que subiste, está bien. No le encuentro error.

Pega el Conexion.php

-Puede que no hagas bien la conexión a MySQL.
-Usuario o contraseña equivocada? Te da error?
-La tabla existe?

vnak


<?php



                         $usuario 
="root"

 $clave ="++++";

 $servidor ="localhost";

 $database ="eero";

 

 $conectar mysql_connect($servidor,$usuario,$clave)or Die("No se ha podido conectar a la base de datos");

             
$elegirdb mysql_select_db($database)or Die("El nombre de la base de datos es incorrecto");

             

?>




la clave no es esa. La tabla "noticias si que existe" solo que aun no hay contenido, pero aún así aunque no hubiera nada de contenido, no debería de aparecer el error.

Puede ser que sea que como que todos los archivos de la carpeta var/www tienen como a propietario: www-data , quizás la conexión falla porque se debería de hacer desde root. Pero esque no se que comando usar para cambiar de propietario al archivo conexion.php

rigoxls

Pues si fuese el archivo de conexion el que generara el error deberia mostrarte alguno de los dos mensajes que pusisite en caso de que no ubiese conexion, para eso los pusiste....

Porque no tratas de ejecutar el archivo conexion.php y miras si te aparecen los mensajes de error que pusiste...

Y bueno, no se para que tienes esta linea antes de abrir los corchetes del while
$query = mysql_query($qry_stmt) or die(mysql_error());


Saludos...
No hay verdades absolutas sin ciegas posiciones !!!

[u]nsigned

Citar"Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/Index.php on line 36"

Eso quiere decir que cuando llamas a mysql_fetch_array, el elemento que le pasas como argumento ($seleccionar_noticia) no es un resultado valido de consulta SQL. Como dijo rigoxls el problemas es esta linea:

Código (php) [Seleccionar]
$query = mysql_query($qry_stmt) or die(mysql_error());

Deberias ponerla antes del while. Aunque no le veo mucho sentido...de donde sacas $qry_stmt?

Proba asi:
Código (php) [Seleccionar]
$query = mysql_query($qry_stmt) or die(mysql_error());
while($mostrar_noticias = mysql_fetch_array($seleccionar_noticias)){
     echo "<div id='principal'> <p>
     <center>".$mostrar_noticias['Titulo']."</center><br>
     <center>".$mostrar_noticias['Contenido']."</center><br>
     <center>escrito por".$mostrar_noticias['Autor']."</center><br>
     </p></div><br>";
}


aunque para ir depurando poco a poco, usa el codigo de arriva, pero Asi:
Código (php) [Seleccionar]
//$query = mysql_query($qry_stmt) or die(mysql_error());
Es decir, anulandola, para ver si esa linea cusa problemas..

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

vnak

#5
Solucionado: Ya está solucionado, era un error tonto, que me faltaba configurar bien la "id" en la tabla "noticias" de la base de datos. Ahora todo funciona perfectamente.