Autor
|
Tema: Consulta sql no devuelve todos los valores[SOLUCIONADO] (Leído 4,556 veces)
|
Daklon
Desconectado
Mensajes: 57
|
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: //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
Mensajes: 1.186
|
mysql_fetch_row te regresa un array, entonces debes recorrer el array con un while. Ejemplo: <?php $query="SELECT user_id, user_name FROM users;"; echo "id: ".$rows['user_id']." nombre: ".$rows['user_name']."<br>"; } ?>
|
|
|
En línea
|
abc
|
|
|
1mpuls0
Desconectado
Mensajes: 1.186
|
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
Mensajes: 57
|
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 $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í 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
Mensajes: 1.186
|
Debes estar utilizando ese mismo $inves_dat = mysql_fetch_array($inves_query) un poco más arriba, mas o menos parecido al segundo ejemplo. $query="SELECT user_id, user_name FROM users;"; echo "id: ".$rows['user_id']." nombre: ".$rows['user_name']."<br>"; }
Resultado: id: 1 nombre: 1mpuls0 id: 2 nombre: Nameless
$query="SELECT user_id, user_name FROM users;"; echo "id: ".$rows['user_id']." nombre: ".$rows['user_name']."<br>"; }
Resultado: id: 2 nombre: Nameless
Saludos.
|
|
« Última modificación: 3 Septiembre 2015, 18:39 pm por 1mpuls0 »
|
En línea
|
abc
|
|
|
Daklon
Desconectado
Mensajes: 57
|
si, era eso, ahora mismo iba a decir que ya lo había solucionado xD Muchísimas gracias por tu ayuda
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Programa que devuelve la suma de todos los divisores de un número excepto n
Programación C/C++
|
ERIK546
|
2
|
5,241
|
29 Junio 2012, 05:54 am
por ERIK546
|
|
|
Porque esta consulta, me devuelve valores null ??? [SOLUCIONADO]
PHP
|
Razzari
|
4
|
3,029
|
24 Febrero 2017, 02:46 am
por danny920825
|
|
|
Consulta AngularJs(cambiar valores dinamicamente directiva ng-repeat) [resuelto]
Desarrollo Web
|
Razzari
|
0
|
2,428
|
24 Febrero 2017, 21:12 pm
por Razzari
|
|
|
Filtrar fechas y valores en consulta
Bases de Datos
|
loml666
|
0
|
1,529
|
11 Marzo 2019, 23:16 pm
por loml666
|
|
|
capturar los valores que coloco en el input y el valor que me devuelve el index
Desarrollo Web
|
Beginner Web
|
1
|
2,361
|
24 Mayo 2020, 18:17 pm
por EdePC
|
|