CARGAR DATOS DE DB EN UN VECTOR PARA REUSARLOS
Por ejemplo cargar un selector, una tabla y un radio button con los mismos datos
Luego de recuperar los valores de la base de datos lo cargamos en tres vectores sin dimensión,
para usarlos una y otra vez sin leer de nuevo la base de datos.
En $espacio= array(); usamos como pares clave/valor el id y el nombre
($espacio[$r["id"]] = $r["nombre"] ;).
En $espaciotodos= array(); cargamos cada registro como un array de arrays con un
array_push($espaciotodos,$r); porque mysqli_fetch_array devuelve un array con cada registro.
En $soloalgunos= array(); con array_push($soloalgunos,array($r["campo1"],$r["campo2"]));
cargamos en cada array solo los campos deseados.
Para recuperar los valores clave, $valor usamos un foreach ($espacio as $clave =< $valor) donde en
clave estará id y en valor el nombre.
Para recuperar los registros completos o un conjunto de campos usamos un doble foreach
(ver código) el primer foreach va recorriendo los registros y el más interno los campos.
Si necesitamos solo un valor del vector clave/valor lo recuperamos por clave ej $espacio[5] devuelve "federico", pero
de vector de vector lo podemos recuperar por ambos índices por ejemplo $soloalgunos[3][2] devuelve "San Fernando".
<head>
<?php
include("conexion.php"); // abre la conexión a la base de datos
global $conn; //lo usamos en conexion, lo declaramos acá para no llamar siempre a $GLOBALS[]
conectar();
$espacioclave= array();
$espaciotodos= array();
$soloalgunos= array();
$sqltxt = "SELECT * FROM personas ORDER BY nombre LIMIT 1,5";
$sqldevolucion = mysqli_query($conn,$sqltxt);
while ($r = mysqli_fetch_array($sqldevolucion, MYSQLI_ASSOC)){
$espacioclave[$r["id"]] = $r["nombre"] ; //clave = valor
array_push($espaciotodos,$r); //carga todo el registro
array_push($soloalgunos,array($r["nombre"],$r["club"]));//carga los campos elegidos
}
mysqli_free_result($sqldevolucion);
mysqli_close($conn);
?>
</head>
<body>
<div style="margin: 0 auto; ; padding-top:20px;">
<div style="margin-right:20px; margin-bottom:20px; ">
Selector cargado desde el vector (el valor TODOS está agregado por html):
</div>
<select name="usuarios" id="user" style=" width:150px; height:18px; margin-top:4px; font-size:12px; padding:0px;">
<option value="TODOS">Todos los usuarios </option>
<?php
foreach ($espacioclave as $clave => $valor){
?>
<option value="<?php echo $clave ?>"><?php echo $valor ?> </option>
<?php
}
?>
</select>
</div>
<*************************************************
<div style="text-align:left; margin-top:50px;">
<div style="margin-right:20px; margin-bottom:20px; ">
Todos los checkbox están tildados, se cargan desde el vector:
</div>
<?php
foreach ($espacioclave as $clave => $valor){
?>
<div style=" display:inline-table; text-align:left" >
<?php echo $valor;?>
<input id="<?php $clave;?>" name="<?php echo $valor;?>" type="checkbox" value="<?php echo $valor;?>" checked />
</div>
<?php
}
?>
<div style="clear:both;"></div>
</div>
<div style="margin: 0 auto; margin-left:15px; margin-top:20px; clear:both; ">
*******************************************************************
</div>
<div style=" margin-top:50px; ">
Clave y valores del vector:
<ul>
<?php
foreach ($espacioclave as $clave => $valor){
?>
<li ><?php echo $clave;?> <?php echo $valor;?></li>
<?php
}
?>
</ul>
</div>
*************************************************
<div style="margin: 0 auto; margin-left:15px; margin-top:20px; clear:both; ">
*******************************************************************
</div>
<div style="margin-left:20px;">
<strong><u>Todos los campos</u></strong><br/><br/>
<?php
foreach($espaciotodos as $fila) {
foreach($fila as $val){
echo( $val . " ");
}
echo("<br>");
}
?>
</div>
<div style="margin: 0 auto; margin-left:15px; margin-top:20px; clear:both; ">
*******************************************************************
</div>
<div style="margin-left:20px;">
<strong><u>Solo nombre y club</u></strong><br/><br/>
<?php
foreach($soloalgunos as $fila) {
foreach($fila as $val){
echo( $val . " ");
}
echo("<br>");
}
?>
</div>
</body>