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>
						
					
© IQSystems 2023