PHP - SQL a un array PHP

 
Vista:
sin imagen de perfil
Val: 18
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

SQL a un array PHP

Publicado por German (10 intervenciones) el 27/02/2018 21:26:42
Hola gente, tengo una base de datos con tarjetas de creditos y las propiedades de cada una, como cuotas, intereses , descuentos, etc.
Luego una lista aparte de pagos, en donde en vez de mostrar el medio de pago, muestra el id.
Quiero asociar el ID de esa tarjeta para que me muestre un nombre pero pensando a futuro no quiero matar a la base de datos con muchas consultas.
Se me ocurrio hacer un array llamdo medios en donde guarde el nombre de cada medio de pago y lo asocio con su ID de la base de datos.
Muestro el codigo que no me funciona.


1
2
3
4
5
6
7
$query  = "SELECT id,nombre FROM medios"; //id de la tabla medios y el nombre de la tarjeta
$result = $conn->query($query);
while ($row   = $result->fetch_array() ){
 
$medios = [    $row[id] => $row[nombre]    ];
}
echo $medios[3]; deberia de mostrar VIsa pero no funciona.

ahora si en el while coloco

1
$medios = [   '3' => $row[nombre]    ];
Muestra correctamente la palabra "VISA", no se que mas hacer o por que no funciona colocar el $row[id], ya revise la tabla y el id 3 es de VISA, si en el while hago un

1
echo $row[id];

Me muestra todos los ID de esa table, es decir que la consulta esta bien formulada. Pero volviendo al array no me anda :(

Alguien que me tire un cable??
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 604
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

SQL a un array PHP

Publicado por Miguel (218 intervenciones) el 27/02/2018 22:05:29
1) Los índices que usas para acceder al array tienen que ir dentro de comillas.

2) Actualmente dentro del while estás asignando todo un array a la variable $registros y no solo agregando el registro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 18
Ha aumentado su posición en 6 puestos en PHP (en relación al último mes)
Gráfica de PHP

SQL a un array PHP

Publicado por German (10 intervenciones) el 28/02/2018 18:05:39
Leí varias veces tu comentario pero no logre comprender, las comillas no me cambiaron nada, sigue sin funcionar.

Actualmente lo tengo de la siguiente forma.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Extraigo los datos de los pagos de la tabla "PAGOS" y el ID del medio que esta en otra tabla (Medios)
$query = "SELECT * FROM pagos order BY id DESC LIMIT 30";
$result = $conn->query($query);
//Despliego los resultados uno a uno
while (    $row = $result->fetch_array()    ){
 
        //Para saber como se llama el medio con el ID almacenado armo otra busqueda
	$query2 = "SELECT * FROM medios WHERE id='$row[medio]' ";
        $result2 = $conn->query($query2);
        $row2 = $result2->fetch_array();
//Imprimo todo en una tabla	
   echo "<tr>".
    	         "<td>". $row[fecha_compra]."</td>".
                 "<td>". $row[monto].             "</td>".
                 "<td>". $row[descuento].       "</td>".
                 "<td>". $row[cuotas].             "</td>".
                 "<td>". $row[monto_cobrar]. "</td>".
                 "<td>". $row[fecha_cobro].   "</td>".
                 "<td>". $row2[nombre].         "</td>".
           "</tr>";
}

Esto así funciona bien pero aumento la cantidad de consultas a la base y me parece innecesario.
Si armo un array con el ID y el nombre creo que es suficiente. Algo así.
1
$medios = [    '3' => 'OCA', '5' => 'VISA', '6' => 'MASTERCARD'     ];

entonces en el código anterior no tengo que consultar la tabla MEDIOS cada vez que el WHILE recorre la tabla PAGOS,
esta ultima tabla en un futuro va a ser muy grande.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar