Autor Tema: [MySQLi] La consulta sólo devuelve un resultado.  (Leído 4650 veces)

Desconectado iStocker

  • PHPer@ Fijo
  • ***
  • Mensajes: 104
  • Karma: 6
  • ~ єssєитιαʟ ~
    • Ver Perfil
[MySQLi] La consulta sólo devuelve un resultado.
« en: 18 de Enero de 2013, 06:47:06 am »
Bueno, llevo bastante con éste problema & ya he recurrido a muchos amigos que saben de programación pero ninguno logró ayudarme así que me decidí a publicarlo aquí. El problema consiste en que realizo una consulta donde debería de devolver todos los registros en la tabla, el problema es que sólo devuelve uno, ya lo he hecho de muchas formas, pero siempre resulta en lo mismo, quisiera que revisarán el código que hice & pudieran ayudarme.

Gracias de antemano.

https://gist.github.com/264631ec7c61c06d59cc
Código: (php) [Seleccionar]
public function Furnis($c_id)
  {
if(isset($c_id))
{
$furnis = self::$c->query("SELECT * FROM items WHERE c_id='".$c_id."'");
 
if($furnis->num_rows)
{

$row = $furnis->fetch_array(MYSQLI_NUM);

foreach($row as $k => $v)
{
$efurnis[] = $v;
}
 
return $efurnis;
$furnis->free();
}
else
{
return $error = true;
}
}
else
{
$furnis = self::$c->query("SELECT * FROM items ORDER BY id DESC");
$row = $furnis->fetch_array(MYSQLI_ASSOC);
foreach($row as $keys)
{
$efurnis[] = $keys;
}
 
return $efurnis;
 
$furnis->free();
}
}
¡FUUU!


Cita de: Mary Shaw
Menos del 10% del código tienen que ver directamente con el propósito del sistema; el resto tiene que ver con la entrada y salida, validación de datos, mantenimiento de estructuras de datos y otras labores domésticas



[/cent

Comunidad PHPeros

[MySQLi] La consulta sólo devuelve un resultado.
« en: 18 de Enero de 2013, 06:47:06 am »

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[MySQLi] La consulta sólo devuelve un resultado.
« Respuesta #1 en: 19 de Enero de 2013, 21:21:15 pm »
Cuanto tiempo sin pasar por este foro, pero si, estoy vivo jaja.

Podrias intentarlo de esta manera y me dices que tal.
Citar
	
$query self::$c->multi_query("SELECT * FROM items ORDER BY id DESC");
     
	
do {
 
	
	
if (
$focux self::$c->store_result()) {
                    while (
$mrfocux $focux->fetch_assoc()) {
                        foreach(
$mrfocux as $key => $value) {
                            
$datos[$key][] = $value;
                        }
                    }
                    
$focux->close();
                }
            }
            while (
$mysqli->next_result());
            return 
$datos;
Mixtiqueros.net

<?PHP
define
(_miNombre'Focux');
if(
_miNombre == 'Focux'): printf('%s es un programador avanzado'_miNombre); else: printf('Tu no eres %s'_miNombre); endif;
?>

Desconectado iStocker

  • PHPer@ Fijo
  • ***
  • Mensajes: 104
  • Karma: 6
  • ~ єssєитιαʟ ~
    • Ver Perfil
Re:[MySQLi] La consulta sólo devuelve un resultado.
« Respuesta #2 en: 20 de Enero de 2013, 07:14:47 am »
Cuanto tiempo sin pasar por este foro, pero si, estoy vivo jaja.

Podrias intentarlo de esta manera y me dices que tal.
Nada, La incluí en mi función & tampoco funcionaba, creé una nueva función por si algo de mi función causaba el error, & me seguía dando error. Me sale un error con la variable de $mysqli, probé cambiándola con la de la conexión establecida & seguía dandome error, probé con otra función que me sugirió un error & por alguna razón estaba dispuesto a tirarme error en la línea 67, en la cuál no tenía nada.
¡FUUU!


Cita de: Mary Shaw
Menos del 10% del código tienen que ver directamente con el propósito del sistema; el resto tiene que ver con la entrada y salida, validación de datos, mantenimiento de estructuras de datos y otras labores domésticas



[/cent

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[MySQLi] La consulta sólo devuelve un resultado.
« Respuesta #3 en: 20 de Enero de 2013, 17:03:59 pm »
Si, sin querer se me olvido cambia la variable $mysqli por la de tu conexion; otra cosa cual es el error que te da?
Mixtiqueros.net

<?PHP
define
(_miNombre'Focux');
if(
_miNombre == 'Focux'): printf('%s es un programador avanzado'_miNombre); else: printf('Tu no eres %s'_miNombre); endif;
?>

Desconectado iStocker

  • PHPer@ Fijo
  • ***
  • Mensajes: 104
  • Karma: 6
  • ~ єssєитιαʟ ~
    • Ver Perfil
Re:[MySQLi] La consulta sólo devuelve un resultado.
« Respuesta #4 en: 22 de Enero de 2013, 07:38:37 am »
Si, sin querer se me olvido cambia la variable $mysqli por la de tu conexion; otra cosa cual es el error que te da?
El error era que usará otra función de mysqli, la cuál no recuerdo, lo siento >.<

Bueno, un amigo me ayudó a solucionar el error haciendo un array multidimensional en el cuál creamos una variable afuera del while ($i) & en cada incremento se le definía un número a la matriz, lo demás era el array de la consulta ñ.ñ
¡FUUU!


Cita de: Mary Shaw
Menos del 10% del código tienen que ver directamente con el propósito del sistema; el resto tiene que ver con la entrada y salida, validación de datos, mantenimiento de estructuras de datos y otras labores domésticas



[/cent

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[MySQLi] La consulta sólo devuelve un resultado.
« Respuesta #5 en: 23 de Enero de 2013, 00:18:42 am »
Que raro, acabo de probar el método que te dije y funciono perfectamente, sera que se me olvido decirte que la función te devuelve un array con todos los datos extraídos, tenias que luego mostrar todos los datos del array con algún bucle.
Mixtiqueros.net

<?PHP
define
(_miNombre'Focux');
if(
_miNombre == 'Focux'): printf('%s es un programador avanzado'_miNombre); else: printf('Tu no eres %s'_miNombre); endif;
?>

Desconectado iStocker

  • PHPer@ Fijo
  • ***
  • Mensajes: 104
  • Karma: 6
  • ~ єssєитιαʟ ~
    • Ver Perfil
Re:[MySQLi] La consulta sólo devuelve un resultado.
« Respuesta #6 en: 23 de Enero de 2013, 05:11:24 am »
Que raro, acabo de probar el método que te dije y funciono perfectamente, sera que se me olvido decirte que la función te devuelve un array con todos los datos extraídos, tenias que luego mostrar todos los datos del array con algún bucle.
Citar
Strict Standards:  mysqli::next_result(): There is no next result set. Please, call mysqli_more_results()/mysqli::more_results() to check whether to call this function/method in C:\Directorio on line 51

Ése es el error que sale, & bueno, lo del array lo sé, intenté con foreach pero no funcionó, igual con otros bucles, pero siguió sin funcionar.

Si no mal recuerdo multi_query se utiliza para hacer dos o más consultas, concatenando las consultas con variables, tal vez eso cause el error.
¡FUUU!


Cita de: Mary Shaw
Menos del 10% del código tienen que ver directamente con el propósito del sistema; el resto tiene que ver con la entrada y salida, validación de datos, mantenimiento de estructuras de datos y otras labores domésticas



[/cent

Desconectado cjbaeza

  • PHPerit@
  • *
  • Mensajes: 16
  • Karma: 1
  • Sexo: Masculino
  • Hmm...
    • Ver Perfil
    • Carlos Baeza
Re:[MySQLi] La consulta sólo devuelve un resultado.
« Respuesta #7 en: 30 de Enero de 2013, 12:34:06 pm »
Hola, como aporte, diría que no uses fetch_array, ya que, esto te devuelve el doble de información que un fetch_assoc, eso, saludos.
http://carlosbaeza.net -> Sitio Personal
http://phpchile.cl-> Comunidad Chilena PHP

Desconectado iStocker

  • PHPer@ Fijo
  • ***
  • Mensajes: 104
  • Karma: 6
  • ~ єssєитιαʟ ~
    • Ver Perfil
Re:[MySQLi] La consulta sólo devuelve un resultado.
« Respuesta #8 en: 31 de Enero de 2013, 04:16:48 am »
Hola, como aporte, diría que no uses fetch_array, ya que, esto te devuelve el doble de información que un fetch_assoc, eso, saludos.
Si defines qué tipo de matriz desea que devuelva no lo hace, MYSQLI_NUM, MYSQLI_ASSOC.

Aún así muchas gracias por la ayuda ñ.ñ Cerraría el tema si pudiera, creo que lo resportaré como solucionado a ver si lo cierran o algo.
« Última modificación: 31 de Enero de 2013, 04:19:56 am por iStocker »
¡FUUU!


Cita de: Mary Shaw
Menos del 10% del código tienen que ver directamente con el propósito del sistema; el resto tiene que ver con la entrada y salida, validación de datos, mantenimiento de estructuras de datos y otras labores domésticas



[/cent

Desconectado Void

  • PHPerit@
  • *
  • Mensajes: 7
  • Karma: 0
  • Nuev@ PHPer@
    • Ver Perfil
Re:[MySQLi] La consulta sólo devuelve un resultado.
« Respuesta #9 en: 31 de Enero de 2013, 19:27:08 pm »
Tal vez no tenga nada que ver esto, pero ya me ha sucedido.
Intenta reemplazar el return por echo.

Desconectado cjbaeza

  • PHPerit@
  • *
  • Mensajes: 16
  • Karma: 1
  • Sexo: Masculino
  • Hmm...
    • Ver Perfil
    • Carlos Baeza
Re:[MySQLi] La consulta sólo devuelve un resultado.
« Respuesta #10 en: 31 de Enero de 2013, 19:58:40 pm »
Tal vez no tenga nada que ver esto, pero ya me ha sucedido.
Intenta reemplazar el return por echo.

ufff no recomiendo eso...
http://carlosbaeza.net -> Sitio Personal
http://phpchile.cl-> Comunidad Chilena PHP

Desconectado iStocker

  • PHPer@ Fijo
  • ***
  • Mensajes: 104
  • Karma: 6
  • ~ єssєитιαʟ ~
    • Ver Perfil
Re:[MySQLi] La consulta sólo devuelve un resultado.
« Respuesta #11 en: 01 de Febrero de 2013, 06:42:07 am »
Tal vez no tenga nada que ver esto, pero ya me ha sucedido.
Intenta reemplazar el return por echo.
El caso de usar POO es que retorne un resultado, no que lo imprima:v o así lo veo yo, es más, en ocasiones no necesitas imprimir un resultado, solo leerlo & procesarlo. De igual manera lo arregle creando un while & la variable que le asigné creaba un arreglo para poder acceder a los datos ñ.ñ
¡FUUU!


Cita de: Mary Shaw
Menos del 10% del código tienen que ver directamente con el propósito del sistema; el resto tiene que ver con la entrada y salida, validación de datos, mantenimiento de estructuras de datos y otras labores domésticas



[/cent

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[MySQLi] La consulta sólo devuelve un resultado.
« Respuesta #12 en: 01 de Febrero de 2013, 17:43:09 pm »
El caso de usar POO es que retorne un resultado, no que lo imprima:v o así lo veo yo, es más, en ocasiones no necesitas imprimir un resultado, solo leerlo & procesarlo. De igual manera lo arregle creando un while & la variable que le asigné creaba un arreglo para poder acceder a los datos ñ.ñ
En caso de usar POO no, en caso de usar una función.
Mixtiqueros.net

<?PHP
define
(_miNombre'Focux');
if(
_miNombre == 'Focux'): printf('%s es un programador avanzado'_miNombre); else: printf('Tu no eres %s'_miNombre); endif;
?>