Foros del Web » Programando para Internet » PHP »

Problemas con mysql_fetch_array

Estas en el tema de Problemas con mysql_fetch_array en el foro de PHP en Foros del Web. Estoy tratando de mostrar los datos insertados en una tabla previamente pero me da estos errores. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL ...
  #1 (permalink)  
Antiguo 23/09/2003, 20:00
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
Problemas con mysql_fetch_array

Estoy tratando de mostrar los datos insertados en una tabla previamente pero me da estos errores.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\archivos de programa\apache group\apache\htdocs\jc\librovisitas\showsigns.php on line 14

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\archivos de programa\apache group\apache\htdocs\jc\librovisitas\showsigns.php on line 23

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in c:\archivos de programa\apache group\apache\htdocs\jc\librovisitas\showsigns.php on line 24

EL codigo es este:
Código PHP:
<?
 $host 
"localhost";
 
$user "root";
 
$pass "rooteando";
 
$dbase "tinogrm";

 
$conecta mysql_connect($host,$user,$pass) || die("No puedo conectarme a la Base de Datos ".$dbase"en estos momentos <br>"mysql_error());
 
mysql_select_db($dbase);
 
$query  "SELECT *";
 
$query .= "FROM tabla;";
 
$result=mysql_query($query);

 echo 
"<table>\n";
 while (
$row mysql_fetch_array($result))
 {
   echo 
"<tr>";
   echo 
"<td>".$row["id"]. "</td>";
   echo 
"<td>".$row["nombre"]. "</td>";
   echo 
"<td>".$row["correo"]. "</td>";
   echo 
"</tr>\n";
 }
 echo 
"</table>\n";
 
mysql_free_result($result);
 
mysql_close ($conecta);
?>
__________________
Ing. Reynier Pérez Mira
  #2 (permalink)  
Antiguo 23/09/2003, 20:23
Avatar de McManaman  
Fecha de Ingreso: agosto-2003
Ubicación: Ecuador - Guayaquil
Mensajes: 119
Antigüedad: 20 años, 7 meses
Puntos: 0
HOLA....Prueba poniendole el $conecta a estas dos sentencias

mysql_select_db($dbase,$conecta);
$result=mysql_query($query,$conecta);


Chau
__________________
...Hay unos que saben TODO de nada y otros que saben NADA de TODO... think about it
  #3 (permalink)  
Antiguo 23/09/2003, 20:33
 
Fecha de Ingreso: enero-2002
Mensajes: 4.159
Antigüedad: 22 años, 3 meses
Puntos: 22
Te recomiendo que antes de l asignación de $result imprimas el valos de $query si podrás ver si la cadena esta bien armada.

Saludos.
  #4 (permalink)  
Antiguo 23/09/2003, 20:38
Avatar de McManaman  
Fecha de Ingreso: agosto-2003
Ubicación: Ecuador - Guayaquil
Mensajes: 119
Antigüedad: 20 años, 7 meses
Puntos: 0
Ahhh cierto mira tienes un ; de mas.....quitale ese punto y coma de mas....puedes hacer eso en una sola sentencia....prueba

$query = "SELECT *";
$query .= "FROM tabla;";

cambialo por esto:
$query = "SELECT * FROM tabla";

chau
__________________
...Hay unos que saben TODO de nada y otros que saben NADA de TODO... think about it
  #5 (permalink)  
Antiguo 23/09/2003, 20:49
 
Fecha de Ingreso: septiembre-2003
Mensajes: 248
Antigüedad: 20 años, 7 meses
Puntos: 2
Hola, la mayoria de veces que sale un error en mysql_fetch_array o en mysql_free_result no es error de esas lineas sino que el $result que le pasas no es válido, es decir, no es una consulta válida, sin embargo como te sale un error en mysql_close el error está en la conexion al servidor y de allí los otros dos errores, fíjate bien los parámetros que le estas pasando quizás algo has obviado
Suerte!
Jose A
__________________
Jose A
  #6 (permalink)  
Antiguo 30/09/2003, 23:38
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
¿Qué no es obligatorio incluir la variable $conecta para seleccionar la base de datos y para obtener el $result?

$result=mysql_query($query,$conecta);

Esto ya lo puso McManaman, y a mí me parece evidente que ese es el error... ¿o no?
  #7 (permalink)  
Antiguo 03/10/2003, 23:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El problema lo tienes en tu "concatencación" de variabels ..

Tus:
Código PHP:
$query  "SELECT *";
 
$query .= "FROM tabla;"
Si le haces un:
Código PHP:
echo $query
veras algo así:
Código PHP:
SELECT *FROM tabla
Y eso es un error de sintax SQL para Mysql .. el cual (el error) no lo veras por parte de PHP a no ser que lo indiques explicitamente que quieres verlo:


Código PHP:
$result=mysql_query($query) or die(mysql_error()); 
(usa ese tipo de estructura preferentemente en tus llamadas a funciones mysql_xxx() .. así localizarás errores de sintax/conexión más rápidamente) ..

Solución:
Código PHP:
$query  "SELECT * "// EL ESPACIO! despues de *
 
$query .= "FROM tabla;"// o pones el espacio aquí .. delante del FROM ... 
A "Mysql" .. en cuanto a la sintax SQL .. le dá igual si "sobran" espacios entre sus sentencias/comandos .. pero .. si algo "se junta" . ahí empieza a intentar interpretarlo como un comando/sentencia .. lo cual .. producirá un error si no es válida.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 05/10/2003, 16:29
 
Fecha de Ingreso: agosto-2003
Mensajes: 35
Antigüedad: 20 años, 8 meses
Puntos: 0
a ver novatillos

te reescribo el script porque estos te van a volver loco.

En principio tu script era correcto. considera esto:

La tabla que usas $tabla existe y se llama igual
En esa tabla hay más de 1 registro???


<?
//www.vitoriaenlared.com

error_reporting(0);
$host="localhost";
$user="root";
$password=""; //Constraseña de la base de datos
$database="base_de_datos"; //Base de datos en cuestión

$link = mysql_connect($host,$user,$password);
mysql_select_db($database,$link);

$tabla="tabla_que_usaré";

$query = "SELECT * FROM $tabla";
$result=mysql_query($query, $link);

echo "<table>\n";

while ($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>".$row["id"]. "</td>";
echo "<td>".$row["nombre"]. "</td>";
echo "<td>".$row["correo"]. "</td>";
echo "</tr>\n";
}
echo "</table>\n";
mysql_free_result($result);
mysql_close ($link);
?>
__________________
Estoy buscando currelo, y soy experto en php, mysql, vb6, y me manejo muy bien con flash+actionscript, fireworks, photoshop, y algunas cosillas más. Otras cosillas notambien.

Si necesitan scripts o programas php decidme, que no tengo pasta !!!
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 17:42.