Foros del Web » Programando para Internet » PHP »

Duda con while multi_query

Estas en el tema de Duda con while multi_query en el foro de PHP en Foros del Web. Buenas noches, tengo el siguiente problema. Para realizar una consulta a la base de datos utilizo el siguiente código @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original ...
  #1 (permalink)  
Antiguo 13/08/2014, 23:16
 
Fecha de Ingreso: diciembre-2010
Mensajes: 180
Antigüedad: 13 años, 4 meses
Puntos: 5
Duda con while multi_query

Buenas noches, tengo el siguiente problema.
Para realizar una consulta a la base de datos utilizo el siguiente código

Código PHP:
Ver original
  1. $sql = "SELECT * FROM tabla";
  2. if(!$resultado = $conexion->query($sql)){
  3. die('Ocurrio un error ejecutando el query [' . $conexion->error . ']');
  4. }
  5. while($fila = $resultado->fetch_assoc()) {
  6. Contenido del while
  7.  }

Acá todo perfecto, pero a la hora de hacer un multi query, supongamos que quiero hacer lo mismo, ¿cómo hacer?

Intenté esto pero definitvamente no funcionó.

Código PHP:
Ver original
  1. $sql = "SELECT * FROM usuarios; ";
  2. $sql.= "SELECT * FROM facturas; ";
  3.  
  4. if (!$conexion->multi_query($sql)) {
  5. echo "Error: (" . $conexion->errno . ") " . $conexion->error;
  6. }
  7. while($fila = $resultado->fetch_assoc()) {
  8. Contenido del while
  9. }

Intenté miles de cosas pero nunca pude obtener los resultados de la misma manera que en el while del query simple.
Antes de que me envíen la documentación del multi_query de php, les digo que no me sirvió, la verdad no lo entiendo. Sé que tengo que estudiar y aprender mucho, es justamente lo que tengo pensado pero tengo que terminar un trabajo lo antes posible y necesito una solución

Desde ya muchas gracias, saludos
__________________
WWW.LLORK.COM - El futuro es nuestro
Blog de descargas, tutoriales, guías, noticias y más.
  #2 (permalink)  
Antiguo 13/08/2014, 23:36
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: Duda con while multi_query

Pienso que si adecuas el ejemplo del manual, no tendrías inconvenientes.

Código PHP:
Ver original
  1. $query  = "SELECT CURRENT_USER();";
  2. $query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";
  3.  
  4. /* ejecutar multi consulta */
  5. if ($mysqli->multi_query($query)) {
  6.     do {
  7.         /* almacenar primer juego de resultados */
  8.         if ($result = $mysqli->store_result()) {
  9.             while ($row = $result->fetch_row()) {
  10.                 printf("%s\n", $row[0]);
  11.             }
  12.             $result->free();
  13.         }
  14.         /* mostrar divisor */
  15.         if ($mysqli->more_results()) {
  16.             printf("-----------------\n");
  17.         }
  18.     } while ($mysqli->next_result());
  19. }
  20.  
  21. /* cerrar conexión */
  22. $mysqli->close();

Saludos
__________________
«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 14/08/2014, 14:47
 
Fecha de Ingreso: diciembre-2010
Mensajes: 180
Antigüedad: 13 años, 4 meses
Puntos: 5
Respuesta: Duda con while multi_query

Hola Alexis, gracias por responder! Lo que sucede es lo siguiente, tengo este código:

Código PHP:
Ver original
  1. <?php
  2.     $sql  = "SELECT * FROM tabla1 ORDER BY id;";
  3.     $sql .= "SELECT * FROM tabla2;";
  4.      
  5. /* ejecutar multi consulta */
  6. if (mysqli_multi_query($conexion, $sql)) {
  7.     do {
  8.         /* almacenar primer juego de resultados */
  9.         if ($resultado = mysqli_store_result($conexion)) {
  10.             while ($fila = mysqli_fetch_row($resultado)) {
  11.                 echo $fila[0].' ';
  12.             }
  13.             mysqli_free_result($resultado);
  14.         }
  15.         /* mostrar divisor */
  16.         if (mysqli_more_results($conexion)) {
  17.             printf("-----------------\n");
  18.         }
  19.     } while (mysqli_next_result($conexion));
  20. }
  21.  
  22. /* cerrar conexión */
  23. mysqli_close($conexion);
  24. ?>

Lo que me muestra es esto:
36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 73 74 75 76 77 78 79 80 81 82 83 ----------------- 1 2

Antes de los guiones serían todas las id (fila 0) de la tabla1, y después de los guiones todas las id (fila 0) de la tabla2, el problema es que yo en el código sólo especifiqué $fila[0] y me muestra los registros de las dos tablas, ¿cómo los muestro por separados? ej, yo en el single query sólo ponia $fila['nombredefila'] y me mostraba los registros de esa fila, puede hacerse algo así con el multi-query pero por separado?

Saludos y gracias una vez más
__________________
WWW.LLORK.COM - El futuro es nuestro
Blog de descargas, tutoriales, guías, noticias y más.

Etiquetas: select, sql, tabla, 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 17:51.