Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con fetch_array()

Estas en el tema de Problema con fetch_array() en el foro de PHP en Foros del Web. Muy buenas a todos. Soy un poquitito novato aun en el tema de programacion web, sobre todo del lado del servidor. Tengo un problema al ...
  #1 (permalink)  
Antiguo 19/12/2015, 08:00
 
Fecha de Ingreso: noviembre-2015
Mensajes: 23
Antigüedad: 8 años, 4 meses
Puntos: 0
Problema con fetch_array()

Muy buenas a todos. Soy un poquitito novato aun en el tema de programacion web, sobre todo del lado del servidor. Tengo un problema al leer la base de datos con la que trabajo. El codigo es el siguiente:
Código PHP:
<?php
echo "he entrado en la pagina php.\r\n";
$conexion = new mysqli ("localhost""*****""******""datosuser");
if(
mysqli_connect_errno()){
    echo 
"Hubo un error al establecer conexion con la base de datos";
    
mysqli_connect_errno();
    exit();
}else{
    echo 
"La conexion se realizo satisfactoriamente";
}

$resultado $conexion->query("SELECT * FROM 'datos usuarios'");
echo 
"<table border = '1'>\r\n";
echo 
"<tr><th>ID</th>\r\n";
echo 
"<th>Nombre y Apellidos</th>\r\n";
echo 
"<th>Password</th>\r\n";
echo 
"<th>Email</th>\r\n";
echo 
"<th>Edad</th>\r\n";
echo 
"<th>Sexo</th>\r\n";
echo 
"<th>Instrumento</th>\r\n";
echo 
"<th>Enlace videos</th>\r\n";
echo 
"<th>Historia</th></tr>\r\n";
while (
$fila $resultado->fetch_array()){
    echo 
"tr align = 'center' valign = 'top'>";
    for (
$columna 0$columna 9$columna ++){
        echo 
"<td>$fila[$columna]</td>\r\n";
    }
    echo 
"<tr>\r\n";
}

echo 
"</table>\r\n";
?>
donde he quitado los datos de usuario y contraseña por simple privacidad, pero en el codigo original esta bien definido. He de recalcar que estoy trabajando en local. Bueno en fin...el caso es que al hacer la lectura, me sale esto:



Realmente no entiendo por que me sale ese error cuando el codigo esta bien, o al menos eso creo. Quizas estoy haciendo un mal uso de fetch_array? Me falta algo?

Gracias por su ayuda

EDITO: Y perdon por poner este tema en PHP...hay una seccion de mysql pero no se como acabo posteado esto aqui...me he confundido.

Última edición por ls_52; 19/12/2015 a las 08:15
  #2 (permalink)  
Antiguo 19/12/2015, 08:41
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Problema con fetch_array()

De entrada te digo que es correcto que hayas publicado tu problema en este foro ya que involucra a PHP. Debería empezar por depurar tu código. La sección en la que verificas si la conexión se realizó o falló, no está bien formada. Si haces uso del modo orientado a objetos de MySQLi, debería ser así:
Código PHP:
Ver original
  1. if($conexion->connect_errno){
  2.     exit('Hubo un error al establecer conexion con la base de datos: ' . $conexion->connect_errno);
  3. }

Con la función exit() puedes imprimir el mensaje de error y finalizar el script, a la vez. No hace falta que imprimas otra cosa en el caso de que no se cumpla la condición pues se ejecutará la sentencia SQL, con lo cual se sobreentenderá que la conexión se realizó satisfactoriamente.

En la línea de la ejecución de la condición, si se produce un error, debes detener el script:
Código PHP:
Ver original
  1. $resultado = $conexion->query("SELECT * FROM 'datos usuarios'") or exit($conexion->error);

Imagino que para efectos del ejemplo es que colocaste el nombre de la tabla entre comillas, ya que no son necesarias. Por otro lado, te sugiero tener la consulta en una variable, de tal modo que si notas que no funciona, puedes imprimirla y llevar el resultado de dicha impresión a phpMyadmin.

También debes de comprobar que la ejecución de la consulta ha devuelto registros para proceder a imprimir la tabla y ejecutar la estructura repetitiva:
Código PHP:
Ver original
  1. if ($resultado->num_rows){
  2.     //Instrucciones
  3. }

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 19/12/2015, 10:44
 
Fecha de Ingreso: noviembre-2015
Mensajes: 23
Antigüedad: 8 años, 4 meses
Puntos: 0
Respuesta: Problema con fetch_array()

Bueno Alexis88, pero lo que tu me estas comentando es por temas de depuracion de codigo, es decir, mi codigo funciona bien tal y como estaba, pero se podia pulir un poco mas...en ese caso, te agradezco la sugerencia :)

A todo esto y para quien lo necesite, logre solucionar el problema y es que al parecer si pongo una tabla con un nombre compuesto (y con espacios), SQL se le va la cabeza y no lo entiende...en cuanto le cambie el nombre a la tabla, sin tocar nada de codigo, empezo a funcionarme bien todo. Gracias de todas formas alexis88
  #4 (permalink)  
Antiguo 19/12/2015, 12:59
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Problema con fetch_array()

¿De verdad tenías el nombre así?

Pensé que lo habías puesto de esa manera para el ejemplo, así como los datos de conexión.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: mysql, select, sql, usuarios
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 23:56.