Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/02/2013, 15:30
art_rockerd
 
Fecha de Ingreso: agosto-2012
Ubicación: México
Mensajes: 106
Antigüedad: 11 años, 8 meses
Puntos: 6
Exclamación Problema con Foreach en PHP para generar TABLA

Hola buen dia colegas, este es mi problema, tenia mi script con Mysqli el cual hacia consulta a bdd y manda a imprmir una tabla html generada dinamicamente desde PHP, el detalle es que al migrar a PDO (Por causas de fuerza mayor) ya no me funciona el foreach.. les pongo el código del antes(mysqli) y el despues(pdo)

Agrego como estoy obteniendo el valor de result:
Código PHP:
Ver original
  1. $sql='SELECT folio_intel as FOLIO,date(fecha_venta) as FECHA_VENTA,ventas.sku_garantia as SKU_GARANTIA,
  2.                        garantias.desc_garantia AS NOMBRE_GARANTIA,productos.descripcion as TIPO_PRODUCTO,
  3.                        marca as MARCA,ventas.descripcion as DESCRIPCION_EQUIPO,finicioA as INICIO_ASISTENCIA,
  4.                        ffinA as FIN_ASISTENCIA,finicioG AS INICIO_GARANTIA,ffinG AS FIN_GARANTIA,
  5.                        importe as IMPORTE_SIN_IVA,financiamiento as TOTAL_PAGOS,mensualidad AS MENSUALIDADES,origen AS ORIGEN,
  6.                        nombre_canal AS CANAL_VENTA,users.nombre as VENDEDOR,profile.profile as PERFIL_VENDEDOR,
  7.                        sucursales.nombre_suc as NOMBRE_SUCURSAL
  8.                        FROM ventas
  9.                        RIGHT JOIN canal_venta ON ventas.id_canal=canal_venta.id_canal
  10.                        INNER JOIN users ON ventas.id_user=users.id_user
  11.                        RIGHT JOIN profile ON users.id_profile=profile.id_profile
  12.                        INNER JOIN sucursales ON users.clave_suc=sucursales.clave_suc
  13.                        RIGHT JOIN productos ON ventas.tipo_prod=productos.id_prod
  14.                        RIGHT JOIN garantias ON ventas.SKU_garantia=garantias.SKU_garantia
  15.                        WHERE ventas.folio_intel=:folio';
  16.         $query = $conn->prepare($sql);
  17.                 $query->bindParam(':folio', $folio);
  18.                 $query->execute();
  19.                 $result = $query->fetchAll();
  20.                 $query->closeCursor();
Aqui con Mysqli funcionando perfecto:
Código PHP:
Ver original
  1. $tabla ="<b>INFORMACION DE LA VENTA...</b><br>";
  2.        $tabla .= '<table border="1"><tr><th class="B_Titulos">Campo</th><th class="B_Titulos">Valor</th></tr>';
  3.        foreach($result->fetch_assoc() as $key => $val){
  4.                $tabla .= "<tr><td class='C_subtitulos'>$key</td><td>$val</td></tr>";
  5.        }
  6.        $tabla .= '</table>';
  7.        echo $tabla;

Aqui con PDO, como el foreach que usaba antes me mandaba error en el fetch_all(), le cambie a esto, y no me envia error, solo que no me arroja lo que yo deseo..
Código PHP:
Ver original
  1. $tabla ="<b>INFORMACION DE LA VENTA...</b><br>";
  2.                     $tabla .= '<table border="1"><tr><th class="B_Titulos">Campo</th><th class="B_Titulos">Valor</th></tr>';
  3.                     //foreach($result->fetch_all() as $key => $val){
  4.                     foreach ($result as $key => $val){
  5.                             $tabla .= "<tr><td class='C_subtitulos'>$key</td><td>$val</td></tr>";
  6.                     }
  7.                     $tabla .= '</table>';
  8.                         echo $tabla;
  9.                 }

lo que me muestra es una tabla con esto:
| Campo | Valor |
===========
| [0] | Array |

Alguien podria ayudarme a saber como puedo hacer el foreach para que me funcione correctamente, se supone que la tabla resultante debe contener todos los datos que yo obtento de mi query, que son como 10... Saludos!

Última edición por art_rockerd; 28/02/2013 a las 15:39 Razón: agrear info