Comunidad PHPeros

Lenguajes => PHP => (POO) Programación Orientada a Objetos => Mensaje iniciado por: iStocker en 18 de Enero de 2013, 06:47:06 am

Título: [MySQLi] La consulta sólo devuelve un resultado.
Publicado por: iStocker 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();
}
}
Título: Re:[MySQLi] La consulta sólo devuelve un resultado.
Publicado por: Focux 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;
Título: Re:[MySQLi] La consulta sólo devuelve un resultado.
Publicado por: iStocker 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.
Título: Re:[MySQLi] La consulta sólo devuelve un resultado.
Publicado por: Focux 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?
Título: Re:[MySQLi] La consulta sólo devuelve un resultado.
Publicado por: iStocker 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 ñ.ñ
Título: Re:[MySQLi] La consulta sólo devuelve un resultado.
Publicado por: Focux 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.
Título: Re:[MySQLi] La consulta sólo devuelve un resultado.
Publicado por: iStocker 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.
Título: Re:[MySQLi] La consulta sólo devuelve un resultado.
Publicado por: cjbaeza 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.
Título: Re:[MySQLi] La consulta sólo devuelve un resultado.
Publicado por: iStocker 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.
Título: Re:[MySQLi] La consulta sólo devuelve un resultado.
Publicado por: Void 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.
Título: Re:[MySQLi] La consulta sólo devuelve un resultado.
Publicado por: cjbaeza 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...
Título: Re:[MySQLi] La consulta sólo devuelve un resultado.
Publicado por: iStocker 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 ñ.ñ
Título: Re:[MySQLi] La consulta sólo devuelve un resultado.
Publicado por: Focux 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.