Comunidad de diseño web y desarrollo en internet online

Problema mysql_fetch_array()

Citar            
MensajeEscrito el 11 Jun 2006 11:00 pm
Bueno tengo un pequeño problema, en local tengo este codigo (iniciando en la linea 13):

Código :

   if ($series== "nueva"){
      while($rows= mysql_fetch_array($series_nuevas)){
         printf("<ul><a href=\"Series.php?id=%s\">%s</a></ul>",$rows['Id'],$rows['Titulo']);
      }
   } 

y perfecto, realiza la consulta a la base de datos y me retorna todos los titulos con el link, pero coloco ese mismo codigo en la web (miarroba.com para ser especificos) y me da un gran error:

Código :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/webcindario/aniotaku/php/Series.php on line 14

Cual es el problema??
Por cierto, hay varias funciones similares y una ves que se cumple la condición del if es que revienta el codigo

Por Takashi

Claber

105 de clabLevel



Genero:Masculino  

Caracas - Venezuela

firefox
Citar            
MensajeEscrito el 12 Jun 2006 12:41 am
Bueno de entrada esta mal la sintaxis del fetch_array, pues debes definir de que tipo será el arreglo que te devolvera.

Empapete de mysql_fetch_array AQUI

Ahora series_nuevas debe ser producto de:


Código :

$series_nuevas=mysql_query("Select * from tabla);



Especificamente tiene que ser el resultado de query, si ese query falla tambien fallará el fetch_array

Por DaHouseCat

Claber

1011 de clabLevel

2 tutoriales

Genero:Masculino  

Smarphones Fan Boy

firefox
Citar            
MensajeEscrito el 12 Jun 2006 01:30 am
Hummm, pero en realidad se es producto de un query

Código :

 $series_nuevas=mysql_query("select * from Series where Nueva= 1",$link);

Por Takashi

Claber

105 de clabLevel



Genero:Masculino  

Caracas - Venezuela

firefox
Citar            
MensajeEscrito el 12 Jun 2006 05:11 am
Revise bien, y todo esta bien, de hecho como dije antes el error me da es cuando esta en la web, en local todo funciona perfectamente bien, no tengo idea de lo que pueda estar pasando.
Link en la web

Por Takashi

Claber

105 de clabLevel



Genero:Masculino  

Caracas - Venezuela

firefox
Citar            
MensajeEscrito el 12 Jun 2006 01:09 pm
estas conectando y seleccionando correctamente la BD?

no habrás olvidado cambiar los parametros de conexion local por los del servidor?

Puedes poner el codigo completo de Series.php? ... Saludos ...

Te falla por q el fetch_array no recibe datos, eso kiere decir que el query no se esta realizando y si el query no se esta realizando es hora de checar el flujo de la información, si el query es correcto, si el nombre de la BD es correcto, si los parametros de conexion son correctos, por cierto no olvides utilizar Exactamente el mismo nombre que el que tiene asignado... Windows a veces perdona los nombres, pero los servidoes Linux distinguen entre mayusculas y minusculas ... ya sabes Hola no es lo ismo que hola

Por DaHouseCat

Claber

1011 de clabLevel

2 tutoriales

Genero:Masculino  

Smarphones Fan Boy

firefox
Citar            
MensajeEscrito el 12 Jun 2006 01:35 pm
- tienes error en la consulta sql, revisala
- o nunca estas ejecutando la consulta sql y por eso no es un resource el argumento que le das a mysql_fetch_array

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 12 Jun 2006 01:54 pm
Revise lo de la bd y todo ta bien, voy a colocar el codigo de conectar_bd.php y el de series.php para que puedas verlo.
conectar_db.php

Código :

<?php
function Conectarse()
{
   if (!($link=mysql_connect ("localhost", "dragonro_gal", "***********")))
   {
      echo "Error conectando a la base de datos.";
      exit();
   }
   if (!mysql_select_db("dragonro_galeria",$link))
   {
      echo "Error seleccionando la base de datos.";
      exit();
   }
   return $link;
}
?>

Series.php

Código :

<?php 
   include("estilo.php");
   include("conectar_bd.php");
      CabeceraPagina(); 
   $link=Conectarse();
   $series_nuevas=mysql_query("select * from series where Nueva= 1",$link);
   $series_viejas=mysql_query("select * from series where Nueva= 0",$link);
   $series_totales=mysql_query("select * from series",$link);
   @ $series=$_GET['serie'];
   if ($series== "nueva"){
      while($rows= mysql_fetch_array($series_nuevas)){
         printf("<ul><a href=\"Series.php?id=%s\">%s</a></ul>",$rows['Id'],$rows['Titulo']);
      }
   }
   if ($series== "vieja"){
   while($rows= mysql_fetch_array($series_viejas)){
         printf("<ul><a href=\"Series.php?id=%s\">%s</a></ul>",$rows['Id'],$rows['Titulo']);
      }
   }
   if ($series== "todas"){
   while($rows= mysql_fetch_array($series_totales)){
         printf("<ul><a href=\"Series.php?id=%s\">%s</a></ul>",$rows['Id'],$rows['Titulo']);
      }
   }
   
   @ $buscar=$_GET['id'];
   $serie=mysql_query("select * from series where Id = $buscar",$link);

  while(@ $row = mysql_fetch_array($serie)) {
      printf("%s&nbsp;<br>%s&nbsp;<br><br>%s", $row["Titulo"],$row["Genero"],$row["Contenido"]);
   } 
@   mysql_free_result($serie);
   mysql_close($link);
 PiePagina(); ?>

Por Takashi

Claber

105 de clabLevel



Genero:Masculino  

Caracas - Venezuela

firefox
Citar            
MensajeEscrito el 13 Jun 2006 08:06 pm
Hye no se olviden de mi :( quiero saber si hay algo mal en el codigo o en la conexion a la base de datos porque no puedo ver las consultas... y en local funciona perfectamente.

Por Takashi

Claber

105 de clabLevel



Genero:Masculino  

Caracas - Venezuela

firefox
Citar            
MensajeEscrito el 15 Jun 2006 01:21 am
:punal: Haz lo siguiente, prueba no usar el identificador $link cada vez que uses la función mysql_query(), por ejemplo, en vez de

Código :

mysql_query("select * from series where Nueva= 1",$link);

usa:

Código :

mysql_query("select * from series where Nueva= 1");

... que sucede aquí? la función mysql_query usará el último identificador de conexión abierto. Ya he visto ese error al intentar coordinar conexiones mysql con clases y funciones, dale a ver que pasa y nos cuentas. Saludos.

Por EdilbertoO

23 de clabLevel



Genero:Masculino  

Colombia

firefox
Citar            
MensajeEscrito el 15 Jun 2006 03:57 am
Bueno, provare pero yo siempre cierro las conexiones a datos....

Por Takashi

Claber

105 de clabLevel



Genero:Masculino  

Caracas - Venezuela

firefox
Citar            
MensajeEscrito el 15 Jun 2006 04:01 pm
Umm tienes razón :?, entonces si te funciona así no olvides cerrar la conexión con mysql_close(), así tal cual lo ves, no es necesario indicar cual es el identificador ($link) ya que este comando cerrará el último enlace abierto. En tu caso mysql_close() hará su trabajo ya que no estás usando enlaces persistentes con mysql_pconnect(). De todos modos normalmente no es necesario usar mysql_close() ya que las aperturas no persistentes son cerradas automáticamente cuando termina el script. Me atrevo a sospechar que en tu caso al intentar usar un enlace no persistente dentro de esa función a la que llamaste Conectarse() el enlace se pierde al intentar retornar el identificador, pero no estoy seguro y además como dices, te funciona en servidor local y no en el remoto, así que la solución a tu problema se resumiría sencillamente en cambiar mysql_connect() por mysql_pconnect() en tu función Conectarse().

Yo te recomendaría (al estilo de los scripts de Dreamweaver) que uses una conexión persistente de esta forma (que funciona muy bien):

myConnection.php

Código :

<?php
$hostname_myConnection = "localhost";
$database_myConnection = "yourDataBase";
$username_myConnection = "root";
$password_myConnection = "password";
$myConnection = mysql_pconnect($hostname_myConnection, $username_myConnection, $password_myConnection) or trigger_error(mysql_error(),E_USER_ERROR); 
?>


series.php

Código :

<?php
require_once('Connections/myConnection.php');
mysql_select_db($database_myConnection, $myConnection);
$series_nuevas = mysql_query("select * from series where Nueva = 1", $myConnection)  or die(mysql_error());
#... etc etc etc ...
?>

Así te tiene que funcionar, por el rendimiento no te preocupes, he probado con miles de registros y con mas o menos 70 personas al tiempo accediendo a la misma base de datos, y sin ningún problema... :wink: Saludos.

Por EdilbertoO

23 de clabLevel



Genero:Masculino  

Colombia

firefox
Citar            
MensajeEscrito el 15 Jun 2006 09:30 pm
Ehhhhhhhh, bien pues probemos este nuevo codigo a ver si me resulta...........
Gracias por la ayuda.... ^_^

Por Takashi

Claber

105 de clabLevel



Genero:Masculino  

Caracas - Venezuela

firefox
Citar            
MensajeEscrito el 31 Jul 2006 08:50 pm
utilize el tutorial (Boletín de noticias por correo con Flash, PHP y MySQL) y como no soy muy bueno no entiendo por que me da este error
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/tucumano28/public_html/sublod.php on line 8
Se ha agregado correctamente a nuestra Base de Datos. Puede cerrar esta ventana

en todos los archivos php me da el mismo error no entineod si es la tabla de la base de datos o el problema esta en el php

Por dartuc

0 de clabLevel



Genero:Masculino  

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.