Foros del Web » Programando para Internet » PHP »

Problema Fetch Array

Estas en el tema de Problema Fetch Array en el foro de PHP en Foros del Web. Que tal, tengo una base de datos mysql compuesta por los campos nombre direccion y email. Los datos se cargan bien en la base de ...
  #1 (permalink)  
Antiguo 08/03/2009, 22:17
 
Fecha de Ingreso: enero-2008
Mensajes: 125
Antigüedad: 16 años, 3 meses
Puntos: 0
Problema Fetch Array

Que tal, tengo una base de datos mysql compuesta por los campos nombre direccion y email. Los datos se cargan bien en la base de datos así que por ese lado no viene el problema (vi los registros en phpmyadmin que estan cargados correctamente). El problema es en otra página que tengo, donde tengo que listar todo el contenido de esa base de datos.

Tengo el siguiente código:
Código PHP:
<HTML>
<TITLE>
Results
</TITLE>

<BODY>
<?
include("connect.php");
$conn=conectar();
$query="SELECT * FROM personas;";
$result=mysql_query($query,$conn);
$i=0;
while(
$row=mysql_fetch_array($query)){
  echo 
$row['nombre'];
  echo 
$row['direccion'];
  echo 
$row['email'];
  
$i++;
}  
?>

</BODY>
</HTML>
donde connect.php es el siguiente script (funciona bien por lo que veo, pero por las dudas lo pongo):

Código PHP:
<?
function conectar( )
{
// datos de configuracion
$ip "localhost";
$usuario "root";
$password "********";
$db_name "test";
// conectamos con la db
$conn mysql_connect($ip,$usuario,$password) or die();
// seleccionamos la base de datos
$huboerror mysql_select_db($db_name,$conn) or die();

return 
$conn;
}
?>
es la función que uso ahí en el primer script. El tema es que no imprime nada, se queda en blanco la página, como hago para listar bien la totalidad de los registros??. Un saludo y desde ya muchas gracias...

Última edición por juanf03; 08/03/2009 a las 22:22
  #2 (permalink)  
Antiguo 08/03/2009, 22:30
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Problema Fetch Array

primero usa el tag completo de php
segundo en el die muestrale el error con mysql_error

tercero no necesitas poner el contador $i;
cuarto asegúrate de que existen registros en la tabla ejecutando la consulta directamente en la bd
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #3 (permalink)  
Antiguo 08/03/2009, 23:05
 
Fecha de Ingreso: enero-2008
Mensajes: 125
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problema Fetch Array

ahi lo cambié:

Código PHP:
<HTML>
<TITLE>
Results
</TITLE>

<BODY>
<?php
include("connect.php");
$conn=conectar();
$query="SELECT * FROM personas;";
$result=mysql_query($query);
echo 
"<table border=1>";
while(
$row=mysql_fetch_array($result)){
  echo 
"<tr><td>";
  echo 
$row['nombre']."</td>";
  echo 
"<td>".$row['direccion']."</td>";
  echo 
"<td>".$row['email']."</td>";
}  
echo 
"</table>";
}  
?> 
</BODY>
</HTML>
Si lo pruebo con el debugger del php designer se imprimen los resultados con la tabla y todo, pero si lo pruebo en el navegador se ve parte del código, lo siguiente aparece en el navegador:

Código HTML:
"; while($row=mysql_fetch_array($result)){ echo ""; echo $row['nombre'].""; echo "".$row['direccion'].""; echo "".$row['email'].""; } echo ""; ?>
, alguien sabe porque puede ser esto???

Última edición por juanf03; 08/03/2009 a las 23:31
  #4 (permalink)  
Antiguo 09/03/2009, 12:52
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Problema Fetch Array

primero, los tags de html, trata de usarlos en minúsculas y dos tienes una } de mas
Código PHP:
<html>
    <head>
        <title>Results</title>
    </head>
<body>
<?php
include("connect.php");
$conn=conectar();
$query="SELECT * FROM personas;";
$result=mysql_query($query);
echo 
'<table border="1">';
while(
$row=mysql_fetch_array($result)){
  echo 
'<tr><td>';
  echo 
$row['nombre'].'</td>';
  echo 
'<td>'.$row['direccion'].'</td>';
  echo 
'<td>'.$row['email'].'</td>';
}  
echo 
'</table>';
?> 
</body>
</html>
saludos-
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #5 (permalink)  
Antiguo 09/03/2009, 13:11
 
Fecha de Ingreso: enero-2008
Mensajes: 125
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problema Fetch Array

muchisimas gracias por tu respuesta, ahí te doy karma por tu ayuda, pero me sigue imprimiendo mal aun depsues de haberle sacado el corchete que sobraba(copié y pegué tal cual el código que pusiste vos), esto se ve en el navegador:...

Código HTML:
'; while($row=mysql_fetch_array($result)){ echo ''; echo $row['nombre'].''; echo ''.$row['direccion'].''; echo ''.$row['email'].''; } echo ''; ?>

Última edición por juanf03; 09/03/2009 a las 13:21
  #6 (permalink)  
Antiguo 09/03/2009, 13:24
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema Fetch Array

Definitivamente parece que tienes una comilla mal cerrada, tal vez donde haces el echo para iniciar la tabla y lo raro es que PHP no te de un mensaje de error al respecto.

Seguro que el codigo que incluiste es el que estas usando? o solo pusiste aqui uno de ejemplo?
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 09/03/2009, 13:26
 
Fecha de Ingreso: enero-2008
Mensajes: 125
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problema Fetch Array

El código que puse es este........lo raro que en el debugger del php designer lo imprime bien, pero en el navegador imprime lo que postié ahi arriba...


Código PHP:
<html>
    <head>
        <title>Results</title>
    </head>
<body>
<?php
include("connect.php");
$conn=conectar();
$query="SELECT * FROM personas;";
$result=mysql_query($query);
echo 
'<table border="1">';
while(
$row=mysql_fetch_array($result)){
  echo 
'<tr><td>'.$row['nombre'].'</td>';
  echo 
'<td>'.$row['direccion'].'</td>';
  echo 
'<td>'.$row['email'].'</td>';
}  
echo 
'</table>';
?> 
</body>
</html>
  #8 (permalink)  
Antiguo 09/03/2009, 13:27
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Problema Fetch Array

prueba incluyendo el 'error_reporting(E_ALL);' sin las comillas, al iniciar tu php y checa que error te marca.
saludos.

Edito

por si lo que ocasiona el error sea el echo(lo dudo, pero por si acaso) aqui tienes otra forma de hacerlo
Código PHP:
$tabla='<table border="1">';
while(
$row=mysql_fetch_array($result)){
  
$tabla.= '<tr><td>';
  
$tabla.= $row['nombre'].'</td>';
  
$tabla.= '<td>'.$row['direccion'].'</td>';
  
$tabla.= '<td>'.$row['email'].'</td>';
}  
$tabla.= '</table>';
echo 
$tabla
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Última edición por eits; 09/03/2009 a las 13:32
  #9 (permalink)  
Antiguo 09/03/2009, 13:33
 
Fecha de Ingreso: enero-2008
Mensajes: 125
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problema Fetch Array

Hice lo que me dijiste, pero al poner esa función la impresión en el navegador no cambió en nada...

Código PHP:
<html>
    <head>
        <title>Results</title>
    </head>
<body>
<?php
include("connect.php");
error_reporting(E_ALL);
$conn=conectar();
$query="SELECT * FROM personas;";
$result=mysql_query($query);
echo 
'<table border="1">';
while(
$row=mysql_fetch_array($result)){
  echo 
'<tr><td>'.$row['nombre'].'</td>';
  echo 
'<td>'.$row['direccion'].'</td>';
  echo 
'<td>'.$row['email'].'</td>';
}  
echo 
'</table>';
?> 
</body>
</html>
Probé también de la forma que me dijiste sin el echo pero en el navegador sale:
Código HTML:
'; while($row=mysql_fetch_array($result)){ $tabla.= ''; $tabla.= $row['nombre'].''; $tabla.= ''.$row['direccion'].''; $tabla.= ''.$row['email'].''; } $tabla.= ''; echo $tabla; ?>  
Estoy usando el appserv, puede ser problema del servidor o el error esta en el código??
  #10 (permalink)  
Antiguo 09/03/2009, 13:38
Avatar de p3rikl3s  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 216
Antigüedad: 15 años, 2 meses
Puntos: 9
Respuesta: Problema Fetch Array

Creo que el problema lo tienes con las comillas al imprimir. Utiliza printf:

Código PHP:
<html>
    <head>
        <title>Results</title>
    </head>
<body>
<?php
include("connect.php");
$conn=conectar();
$query="SELECT * FROM personas";
$result=mysql_query($query);
echo 
"<table border='1'>";
while(
$row=mysql_fetch_array($result)){
  
printf("<tr><td>%s</td>"$row["nombre"]);
  
printf("<td>%s</td>"$row["direccion"]);
  
printf("<td>%s</td>"$row["email"]);
}  
echo 
"</table>";
?> 
</body>
</html>

Prueba y nos comentas...

Saludos

Última edición por p3rikl3s; 09/03/2009 a las 13:50
  #11 (permalink)  
Antiguo 09/03/2009, 13:38
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Problema Fetch Array

quita el punto y coma al final de la consulta
Código PHP:
$query="SELECT * FROM personas;"
que quede así
Código PHP:
$query="SELECT * FROM personas"
y si puedes, pon el código del connect.php, pero quita tus claves reales.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #12 (permalink)  
Antiguo 09/03/2009, 13:42
 
Fecha de Ingreso: enero-2008
Mensajes: 125
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problema Fetch Array

probé el siguiente código quitandole el punto y coma a las entencia sql y usando printf en vez de echo pero nada:

Código PHP:
<html>
    <head>
        <title>Results</title>
    </head>
<body>
<?php
include("connect.php");
$conn=conectar();
$query="SELECT * FROM personas";
$result=mysql_query($query);
echo 
"<table border='1'>";
while(
$row=mysql_fetch_array($result)){
  
printf("<tr><td>%s</td>"$row["nombre"]);
  
printf("<td>%s</td>"$row["direccion"]);
  
printf("<td>%s</td>"$row["email"]);
}  
echo 
"</table>";
?> 
</body>
</html>
también probé dejandole el ; a la sentencia sql, pero lo mismo.....

en cuanto al archivo connect.php es este:

Código PHP:
<?
function conectar( )
{
// datos de configuracion
$ip "localhost";
$usuario "root";
$password "*********";
$db_name "test";
// conectamos con la db
$conn mysql_connect($ip,$usuario,$password) or die("error");
// seleccionamos la base de datos
$huboerror mysql_select_db($db_name,$conn) or die("error");

return 
$conn;
}
?>
  #13 (permalink)  
Antiguo 09/03/2009, 13:51
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema Fetch Array

Prueba a quitar la tabla y en lugar de ello mostrar cada linea con un <br /> al final:

Código php:
Ver original
  1. <?php
  2. include("connect.php");
  3. $conn=conectar();
  4. $query="SELECT * FROM personas";
  5. $result=mysql_query($query);
  6. while($row=mysql_fetch_array($result)){
  7.   echo $row['nombre'].' - ';
  8.   echo $row['direccion'].' - ';
  9.   echo $row['email']."<br />\n";
  10. }  
  11. ?>

Si lo necesitas como tabla podras ponerlo nuevamente cuando ya este funcionando.
__________________
- León, Guanajuato
- GV-Foto
  #14 (permalink)  
Antiguo 09/03/2009, 13:55
 
Fecha de Ingreso: enero-2008
Mensajes: 125
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problema Fetch Array

probé sacandole lo que dijiste así a secas y quedó:

Código PHP:
<html>
    <head>
        <title>Results</title>
    </head>
<body>
<?php
include("connect.php");
$conn=conectar();
$query="SELECT * FROM personas;";
$result=mysql_query($query);
while(
$row=mysql_fetch_array($result)){
  echo 
$row["nombre"];
  echo 
$row["direccion"];
  echo 
$row["email"];
}  
?> 
</body>
</html>
ahora el navegador imprime una página en blanco......
  #15 (permalink)  
Antiguo 09/03/2009, 13:57
Avatar de p3rikl3s  
Fecha de Ingreso: febrero-2009
Ubicación: Valencia
Mensajes: 216
Antigüedad: 15 años, 2 meses
Puntos: 9
Respuesta: Problema Fetch Array

es raro... quizas sea el conectar. No hagas el conectar como una función. Hazlo solo com un archivo:

Código PHP:
<?php
$link 
mysql_pconnect("localhost","root""tu_clave") or die ("Error al conectarse al Servidor de Base de Datos");
mysql_select_db ("test") or die ("Error al conectarse a la Base de Datos");
?>
Y esto lo llamas solo con incluir el include <conectar.php>
  #16 (permalink)  
Antiguo 09/03/2009, 14:01
 
Fecha de Ingreso: enero-2008
Mensajes: 125
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problema Fetch Array

Código PHP:
<html>
    <head>
        <title>Results</title>
    </head>
<body>
<?php
include("connect.php");
$query="SELECT * FROM personas;";
$result=mysql_query($query);
while(
$row=mysql_fetch_array($result)){
  echo 
$row["nombre"];
  echo 
$row["direccion"];
  echo 
$row["email"];
}  
?> 
</body>
</html>
connect.php quedó:

Código PHP:
<?
// datos de configuracion
$ip "localhost";
$usuario "root";
$password "**********";
$db_name "test";
// conectamos con la db
$conn mysql_pconnect($ip,$usuario,$password) or die("error");
// seleccionamos la base de datos
$huboerror mysql_select_db($db_name,$conn) or die("error");

?>
pero en el navegador sigue apareciendo una página en blanco
  #17 (permalink)  
Antiguo 09/03/2009, 14:16
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema Fetch Array

Agrega or die(mysql_error()) donde haces la consulta y tambien, muestra por favor el codigo fuente que obtienes en el navegador.
__________________
- León, Guanajuato
- GV-Foto
  #18 (permalink)  
Antiguo 09/03/2009, 16:10
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Problema Fetch Array

mmm porque en tu sript de conexión a BD no utilizas el tag completo, pueda que el shor-tag en php.ini esté deshabilitado, además ponle E_STRICT a tu función error

error_reporting(E_ALL | E_STRICT);
sobre quitarle ; a la consulta no es necesario.

me pregunto ¿estará configurado tu servidor para ejecutar php????
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #19 (permalink)  
Antiguo 09/03/2009, 18:27
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Problema Fetch Array

Cita:
Iniciado por argy Ver Mensaje
sobre quitarle ; a la consulta no es necesario.

me pregunto ¿estará configurado tu servidor para ejecutar php????
de acuerdo en lo de quitar el ; no es necesario, y tambien me pregunte lo mismo si el servidor estaba configurado, pero si no lo estuviera creo que todo el php debería ser mostrado por el navegador como texto ¿no crees?, sin embargo, solo muestra a partir del ; antes del while.

seguire, analizando el código tratar de encontrar el error, aunque cabe la pósibilidad de que no sea el código.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #20 (permalink)  
Antiguo 11/03/2009, 10:57
 
Fecha de Ingreso: febrero-2009
Mensajes: 28
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Problema Fetch Array

a mi me aparecia el mismo error y era porque no tenia todas las librerias(extensiones) agregadas a la carpeta EXT que se encuentra en la carpeta PHP del servidor donde tienes instalado el php, asegurate de agregar todas las librerias que te comento para que funcione, saludos y espero que se resuelva tu problema
  #21 (permalink)  
Antiguo 11/03/2009, 11:08
 
Fecha de Ingreso: enero-2008
Mensajes: 125
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problema Fetch Array

que librerias exactamente? y desde ya hay karma para todos...
  #22 (permalink)  
Antiguo 11/03/2009, 11:33
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Respuesta: Problema Fetch Array

no logro dar con el problema, pero sigo aportando ideas, checa así
para la conexión
Código PHP:
function conectar(){
// datos de configuracion
$ip "localhost";
$usuario "root";
$password "********";
$db_name "test";
// conectamos con la db
$conn mysql_connect($ip,$usuario,$password) or die(mysql_error);
// seleccionamos la base de datos
mysql_select_db($db_name,$conn) or die(mysql_error);
return 
$conn;

y para la página
Código PHP:
ini_set('display_errors',1);
include(
"connect.php");
$conn=conectar();
$query="SELECT * FROM personas";
$result=mysql_query($query) or die(mysql_error);
$tabla='<table border="1">';
while(
$row=mysql_fetch_array($result)){
  
$tabla.= '<tr><td>';
  
$tabla.= $row['nombre'].'</td>';
  
$tabla.= '<td>'.$row['direccion'].'</td>';
  
$tabla.= '<td>'.$row['email'].'</td></tr>';
}  
$tabla.= '</table>';
echo 
$tabla
saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #23 (permalink)  
Antiguo 11/03/2009, 12:39
Avatar de SCY-FOX  
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: Problema Fetch Array

aersh... varios cambios.

primero, coloca esto en la primera linea
Código PHP:
ini_set ("display_errors","1" ); 
Despues prueba con esto:
Código PHP:
<?
function conectarse()
{
   if (!(
$link=mysql_connect("localhost","root","")))
   {
      echo 
"Error conectando a la base de datos.";
      exit();
   }
   if (!
mysql_select_db("test",$link))
   {
      echo 
"Error seleccionando la base de datos.";
      exit();
   }
   return 
$link;
}
?>
y abajo usa esto otro

Código PHP:
<?
include("connect.php");

$conn conectar();

$query "SELECT * FROM personas";
$result=mysql_query($query);

if (!
$result)
    {
        echo 
"Error: problemas con la consulta" mysql_error();
    } else {
                    
$i 0;
                    while(
$row=mysql_fetch_array($query))
                        {
                          echo 
"<td>".$row['nombre']."</td>";
                          echo 
"<td>".$row['direccion']."</td>";
                          echo 
"<td>".$row['email']."</td>";
                          
$i++;
                        }  
    
            }

?>
Asi compruebas en todas las instancias de conección a la base de datos.

Fijate que le puse validador en la pagina de conexion, le saqué el punto y coma de la consulta, le puse validador de pregunta sql y comillas dobles al echo.

Espero que te resulte.

Silla!
  #24 (permalink)  
Antiguo 12/03/2009, 09:52
 
Fecha de Ingreso: enero-2008
Mensajes: 125
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problema Fetch Array

muchas gracias, ya se solucionó con estas últimas cosas que me indicaron, ahí les di todo el karma que pude, hasta luego
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 05:55.