Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/05/2014, 08:03
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: Mostrar datos de tablas relacionadas con PHP

Código SQL:
Ver original
  1. SELECT Usuarios.usuario, Productos.producto, Items.item
  2. FROM Usuarios INNER JOIN
  3.    Productos ON Usuarios.codUsuario = Productos.codUsuario INNER JOIN
  4.    Items ON Productos.codProducto = Items.codProducto;

Eso te devuelve un arreglo de "filas" que a su vez pueden ser objetos u otros arrays con los campos (columnas). Eso siempre es asi al menos con la vieja extension 'mysql' hasta para la consulta mas simple.

Con 'MySQLi' tu recibes un objeto resultado al que le puedes solicitar te devuelva objetos registro o bien un arreglo asociativo o no-asociativo con los campos.

Código PHP:
Ver original
  1. <?php
  2. /*
  3.     Ejemplo de uso de mysqli
  4.     100% POO -valido desde php 5.4-
  5.     @author: italico76
  6.  
  7. */
  8. $mysqli = @new mysqli('localhost', 'root', 'tu pass', 'tu db');
  9.  
  10. if ($mysqli->connect_errno)
  11.     die('Connect Error: ' . $mysqli->connect_errno);
  12.  
  13. $query = "SELECT * FROM tu_tabla";
  14.  
  15. if ($result = $mysqli->query($query)) {
  16.  
  17.     var_dump($result); // es un objeto
  18.  
  19.     /* obtener array asociativo */
  20.     while ($row = $result->fetch_assoc()) {
  21.         printf ("%s (%s)\n", $row["nomrbe_campo"], $row["otro_campo"]);
  22.     }
  23.  
  24.     /* liberar el resultset */
  25.     $result->free();
  26. }
  27.  
  28. /* cerrar la conexión */
  29. $mysqli->close();

Puedes obtener objetos-registros como te decia cambiando muy poco, ejemplo:

Código PHP:
Ver original
  1. /* o como... objetos */
  2. while ($row = $result->fetch_object()) {
  3.         printf ("%s (%s)\n", $row->post_title, $row->post_date);
  4. }

O... si quieres no ves un array mas... mira este ejemplo que te hice: :)

Código PHP:
Ver original
  1. <?php
  2. $mysqli = @new mysqli('localhost', 'root', 'xxxxxxxxxx', 'xxxxx');
  3.  
  4. if ($mysqli->connect_errno)
  5.     die('Connect Error: ' . $mysqli->connect_errno);
  6.  
  7. $query = "SELECT * FROM wp_posts";
  8.  
  9. if ($result = $mysqli->query($query)) {
  10.  
  11.     foreach ($result as $row)
  12.     {
  13.         $row = (object) $row;      
  14.         printf ("%s (%s)\n", $row->post_title, $row->post_date);
  15.     }
  16.  
  17.     /* liberar el resultset */
  18.     $result->free();
  19. }
  20.  
  21. /* cerrar la conexión */
  22. $mysqli->close();

Ojo funciona desde php 5.4 el ultimo ejemplo porque es desde cuando se implementa la interfaz Iterator en mysql_result object
__________________
Salu2!

Última edición por Italico76; 21/05/2014 a las 08:40