Array con imágenes BLOB sólo muestra la última foto del array
Publicado por Maje (1 intervención) el 03/11/2018 09:28:42
Hola a tod@s! He creado un proyecto en ionic que tiene que cargar los datos de una tabla creada con phpMyAdmin. La base de datos MySql, tiene una tabla "fotos" que contiene un campo BLOB "foto". Con PHP tiene que leer todo el array de fotos y mostrarlas. En Ionic mostraría todas las imágenes.
El problema que tengo es que sólo muestra la úlima foto leída. Dentro del bucle, sólo queda almacenada la última lectura. He sacado un ejemplo de la red que parece que funciona pero yo no consigo solucionarlo. Os pongo el código para ve si alguien le ve una solución.
Muchas gracias por leerme.
En Ionic, el fichero home.ts sería:
Y en home.html
El problema que tengo es que sólo muestra la úlima foto leída. Dentro del bucle, sólo queda almacenada la última lectura. He sacado un ejemplo de la red que parece que funciona pero yo no consigo solucionarlo. Os pongo el código para ve si alguien le ve una solución.
Muchas gracias por leerme.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET,POST,OPTIONS,DELETE,PUT');
header( 'Access-Control-Allow-Headers: Authorization, Content-Type' );
// Define database connection parameters
$hn = 'localhost';
$un = 'root';
$pwd = '';
$db = 'basedatos';
$cs = 'utf8';
// Set up the PDO parameters
$dsn = "mysql:host=" . $hn . ";port=3306;dbname=" . $db . ";charset=" . $cs;
$opt = array(
PDO::ATTR_ERRMODE =>
PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
PDO::ATTR_EMULATE_PREPARES => false,
);
// Create a PDO instance (connect to the database)
$pdo = new PDO($dsn, $un, $pwd, $opt);
$data = array();
// Attempt to query database table and retrieve data
try {
$listing = $pdo->query('SELECT * FROM fotos');
while($listing_row = $listing->fetch(PDO::FETCH_OBJ))
{
// Assign each row of data to associative array
$listing_data[] = $listing_row;
$newArrData = [];
foreach ($listing_data as $key =>$value){
$newArrData["foto"] = base64_encode($value->foto);
}
}
$array = array($newArrData);
echo json_encode($listing_data);
echo json_encode($array);
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>
En Ionic, el fichero home.ts sería:
1
2
3
4
5
6
7
8
9
10
11
12
loadFoto() : void{
this.http
.get('http://localhost/prueba_uno/blob.php')
.subscribe((data2 : any) =>
{
console.dir(data2);
this.fotos = data2;
},
(error : any) =>
{
console.dir(error);
});}
Y en home.html
1
2
3
<ion-card *ngFor="let foto of fotos">
<img src="data:image/jpeg;base64,{{foto.foto}}"/>
Valora esta pregunta


0