elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Consulta sql no devuelve todos los valores[SOLUCIONADO]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Consulta sql no devuelve todos los valores[SOLUCIONADO]  (Leído 4,556 veces)
Daklon

Desconectado Desconectado

Mensajes: 57



Ver Perfil
Consulta sql no devuelve todos los valores[SOLUCIONADO]
« en: 26 Julio 2013, 16:28 pm »

Lo pongo en php porque creo que es lo que me está dando el error, tengo una consulta que hago en un archivo.php, en la consulta le pido varias cosas y debe devolver varias filas, si hago la consulta a través del phpmyadmin me da lo que quiero sin problemas, pero si la hago en el archivo(misma consulta) solo me devuelve los resultados de la primer fila, a partir de la primera fila todo está vacío, al contrario que con el phpmyadmin que me devuelve 12 filas.

Les adjunto el código y el resultado:
Código:
//obvio la parte de conexión porque esa he comprobado que está bien ya que hago otras consultas y las devuelve correctamente

$inves_query = mysql_query('SELECT nombre, descripcion, recurso1, recurso2, tiempo FROM investigaciones WHERE raza =\''.$_SESSION['raza'].'\'') or die (mysql_error());
$inves_dat = mysql_fetch_row($inves_query) or die (mysql_error());
echo $inves_dat[0];
echo $inves_dat[1];
echo $inves_dat[2];
echo $inves_dat[3];
echo $inves_dat[4];//este es el último que imprime, a partir de aquí todo en blanco
echo $inves_dat[5];
echo $inves_dat[6];
echo $inves_dat[7];
echo $inves_dat[8];

¿a alguien se le ocurre porqué estos resultado diferentes en phpmyadmin y en la consulta que yo hago?

El valor de $_SESSION['raza'] es tauri, cuando hice la consulta en phpmyadmin lo puse tal cual, así que no creo que el problema esté por ahí


« Última modificación: 26 Julio 2013, 17:15 pm por Daklon » En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Consulta sql no devuelve todos los valores
« Respuesta #1 en: 26 Julio 2013, 16:45 pm »

mysql_fetch_row te regresa un array, entonces debes recorrer el array con un while.

Ejemplo:

Código
  1. <?php
  2. $query="SELECT user_id, user_name FROM users;";
  3. $result=mysql_query($query, $link);
  4. while($rows=mysql_fetch_array($result)) {
  5. echo "id: ".$rows['user_id']." nombre: ".$rows['user_name']."<br>";
  6. }
  7. ?>
  8.  


En línea

abc
1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Consulta sql no devuelve todos los valores
« Respuesta #2 en: 26 Julio 2013, 16:51 pm »

Citar
echo $inves_dat[4];//este es el último que imprime, a partir de aquí todo en blanco

Esto es porque:
$inves_dat[0]; //es el valor que contiene el campo nombre
$inves_dat[1]; //es el valor que contiene el campo descripcion
$inves_dat[2]; //es el valor que contiene el campo recurso1
$inves_dat[3]; //es el valor que contiene el campo recurso2
$inves_dat[4]; //es el valor que contiene el campo tiempo


Como tu consulta solo tiene 5 campos (desde el indice 0 hasta el indice 4) entonces por eso no te muestra un valor para $inves_dat[5];, porque no hay un 6 campo (quinto indice).

Saludos.
« Última modificación: 3 Septiembre 2015, 18:39 pm por 1mpuls0 » En línea

abc
Daklon

Desconectado Desconectado

Mensajes: 57



Ver Perfil
Re: Consulta sql no devuelve todos los valores
« Respuesta #3 en: 26 Julio 2013, 16:57 pm »

fijate que selecciono esos campos donde el campo raza sea igual a tauri(en el caso concreto que estoy probando) hay 12 filas en las que ese campo es tauri y esas 12 filas son las que quiero imprimir, además lo curioso es que si uso el siguiente código para ver cuantos resultado devuelve si que me lo imprime 12 veces

Código:
$cantidad_inves = mysql_num_rows($inves_query);
for($i = 0; $i < $cantidad_inves;$i++){
?>
<div id="investigacion">
   <?php
printf("%s",$inves_dat[0]);
?>
    </div>


He seguido tu consejo y he adaptado el código que pusiste, me ha quedado así

Código:
while($inves_dat = mysql_fetch_array($inves_query)){
echo " 1:" .$inves_dat["nombre"];
}

Funciona casi a la perfección, me devuelve todos los resultados que quiero, menos el primero, es decir, devuelve 11 en vez de 12
« Última modificación: 26 Julio 2013, 17:02 pm por Daklon » En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Consulta sql no devuelve todos los valores
« Respuesta #4 en: 26 Julio 2013, 17:14 pm »

Debes estar utilizando ese mismo $inves_dat = mysql_fetch_array($inves_query) un poco más arriba, mas o menos parecido al segundo ejemplo.

Código
  1.        $query="SELECT user_id, user_name FROM users;";
  2. $result=mysql_query($query, $link);
  3. while($rows=mysql_fetch_array($result)) {
  4. echo "id: ".$rows['user_id']." nombre: ".$rows['user_name']."<br>";
  5. }
  6.  

Resultado:
Citar
id: 1 nombre: 1mpuls0
id: 2 nombre: Nameless

Código
  1. $query="SELECT user_id, user_name FROM users;";
  2. $result=mysql_query($query, $link);
  3.  
  4. mysql_fetch_array($result); //<----- fetch array se utiliza antes del while
  5.  
  6. while($rows=mysql_fetch_array($result)) {
  7. echo "id: ".$rows['user_id']." nombre: ".$rows['user_name']."<br>";
  8. }
  9.  

Resultado:
Citar
id: 2 nombre: Nameless



Saludos.
« Última modificación: 3 Septiembre 2015, 18:39 pm por 1mpuls0 » En línea

abc
Daklon

Desconectado Desconectado

Mensajes: 57



Ver Perfil
Re: Consulta sql no devuelve todos los valores
« Respuesta #5 en: 26 Julio 2013, 17:15 pm »

si, era eso, ahora mismo iba a decir que ya lo había solucionado xD

Muchísimas gracias por tu ayuda ;D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines