Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/10/2009, 12:27
ca23sere
 
Fecha de Ingreso: octubre-2009
Mensajes: 32
Antigüedad: 14 años, 6 meses
Puntos: 2
Almacenar registros (sql) en variables con while o for

Bueno, esta es mi primer consulta porque ya no se que hacer, busqué por todos lados y no le encuentro la vuelta. Si bien tiene relación con sql el problema que tengo es PHP meparece. Paso a explicar:

INTRODUCCIÓN: Tengo una base de datos sql para turnos con 5 tablas, una por cada profesional (carlitos, juan etc). Cada tabla tiene los campos id, zona, disponibilidad, dia, hora..etc. Cada tabla tiene 510 registros porque se divide cada 10 minutos de lunes a sábado. Lo que hice es una grilla por profesional en donde están todos los días y todos los horarios. Cada "celda" de esa grilla tiene una lista HTML en donde se elige entre "disponible" "no disponible" etc. Es decir lunes de 8:00 a 8:10 disponible y asi todos los dias y horarios. Todas las listas están dentro de un formulario que se envía completo a actualizar la base de datos.

PROBLEMA: lo que quería hacer era que en cada lista html (que son 510), el valor SELECTED sea el que está en ese momento en la base de datos. Eso lo hice así:

Código PHP:
<?php 
          $consulta 
"SELECT disponibilidad, id FROM juancito WHERE ID='1' ";
          
$resultado mysql_query($consulta);
          
$id1 mysql_fetch_assoc($resultado);
          
?>
          <select name="1" id="lista" >
          <option   <?php if ($id1["disponibilidad"]=="NO DISPONIBLE") {echo "SELECTED";}; ?>>NO DISPONIBLE</option>
          <option  id="dispo"  <?php if ($id1["disponibilidad"]=="DISPONIBLE") {echo "SELECTED";}; ?>>DISPONIBLE</option>
          <option    <?php if ($id1["disponibilidad"]=="TEMPORALMENTE DISPONIBLE") {echo "SELECTED";}; ?>>TEMPORALMENTE DISPONIBLE</option>
          <option    <?php if ($id1["disponibilidad"]=="TEMPORALMENTE NO DISPONIBLE") {echo "SELECTED";}; ?>>TEMPORALMENTE NO DISPONIBLE</option>
        </select>
esto funciona, pero tengo que repetirlo 510 veces. Lo que quería hacer es un bucle que de una sola consulta del tipo:

Código PHP:
<?php 
$consulta 
"SELECT disponibilidad FROM juancito ORDER BY `id` ASC ";
          
$resultado mysql_query($consulta); ?>
me guardara en $id1 el valor de 'disponibilidad' de la primer fila, en $id2 el de la segunda y asi... además, quería que cada $id de las listas html sea de la forma $id$i donde cada $i se incremente con $i++. De manera que las listas html me queden todas iguales, y cada vez que usa el $i el próximo suma una unidad. Y automáticamente trae el valor que tiene la variable correspondiente almacenada en el bucle.

en concreto: yo tengo
Código PHP:
<select name="$id$i" id="lista" >
          <option   <?php if ($id$i["disponibilidad"]=="NO DISPONIBLE") {echo "SELECTED";}; ?>>NO DISPONIBLE</option>
          <option  id="dispo"  <?php if ($id$i["disponibilidad"]=="DISPONIBLE") {echo "SELECTED";}; ?>>DISPONIBLE</option>
          <option    <?php if ($id$i["disponibilidad"]=="TEMPORALMENTE DISPONIBLE") {echo "SELECTED";}; ?>>TEMPORALMENTE DISPONIBLE</option>
          <option    <?php if ($id$i"disponibilidad"]=="TEMPORALMENTE NO DISPONIBLE") {echo "SELECTED";}; ?>>TEMPORALMENTE NO DISPONIBLE</option>
        </select>
y quiero hacer una consulta de manera que me guarde los valores de cada registro en $id1, $id2...$idn.

necesito algo así:

Código PHP:
<?php 
$consulta 
"SELECT disponibilidad FROM juancito ORDER BY `id` ASC ";
          
$resultado mysql_query($consulta);
          while (
$row mysql_fetch_assoc($resultado)){
echo 
$row['disponibilidad'];}


?>

que en lugar de echo me almacene los valores, osea cada $row['disponibilidad'] de cada registro se almacene en $id1 para la fila 1 $id2 par la fila 2 y así. ¿es posible esto o me metí en un quilombo?
Probé hacer algo como $i = 1++; $i =$row['disponibilidad']; y cosas por el estilo dentro del bucle pero no va. Probé hacer variables variables pero no se actualizan, Si alguien me puede ayudar estaría muy agradecido. Saludos.