Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/03/2007, 13:55
dess01
 
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 44
Antigüedad: 17 años, 3 meses
Puntos: 0
Mensaje UsANdO BuCLeS eN FoRmULaRiO

Hola a todos los foreros!

Stoy haciendo un formulario pero no le hallo la forma de cómo introducir un bucle para no estar escribiendo mucho código.

Les explico:
Tengo 3 tablas: cat_especialidad, cat_preguntas, cat_respuestas.

En dicho formulario deseo que se imprima todas las preguntas (del cat_preguntas) con sus 3 respuestas respectivamente (del cat_respuestas) y ke a su vez estas respuestas tenga su "input type" para elegir una de ellas y finalmente "votar".

El código que les mostraré a continuación hace el impreso en pantalla de las preguntas y respuestas de dicha especialidad, pero al momento de seleccionar una respuesta de cada pregunta lo hace una sola vez del total de preguntas ke son, o sea, de 3 preguntas con 9 respuestas solo me deja elegir una.

Código PHP:
<form action="voto-contabilidad.php" method="post">
<?
// Conectar con la base de datos
    
$connection mysql_connect ("localhost")
    or die (
"No se puede conectar al servidor");
    
mysql_select_db ("base22feb")
    or die (
"No se puede seleccionar BD");

    
//consulta pa obtenet la id de la especialidad
    
$query_id_esp mysql_query ("select * from cat_especialidad where especialidad='contabilidad'");
    
$r_id_esp mysql_fetch_array($query_id_esp);
    
$id_esp $r_id_esp[0]; 

    
//consulta pa obtener el id minimo de esa especialidad
    
$query_min_pregmysql_query ("select min(id_preg) from cat_preg where tipo_esp = $id_esp");
    
$r_min_preg mysql_fetch_array($query_min_preg);
    
$min_preg $r_min_preg[0];

    
//consulta pa obtener el id máximo de esa especialidad
    
$query_max_pregmysql_query ("select max(id_preg) from cat_preg where tipo_esp = $id_esp");
    
$r_max_preg mysql_fetch_array($query_max_preg);
    
$max_preg $r_max_preg[0];
            
    
     
//Aqui empiezo a hacer el bucle for pa que me imprima en pantalla todas las preguntas y respuestas de esa especialidad
     
for ($min_preg=$min_preg$min_preg<=$max_preg$min_preg++)
     {
       
$result1=mysql_query("select * from cat_preg where id_preg=$min_preg AND tipo_esp=$id_esp"$connection);

       
$result2=mysql_query("select * from cat_resp where no_preg=$min_preg AND tipo_esp=$id_esp");
       while (
$row=mysql_fetch_array($result1))
       {

        echo  
'<tr><td>'.$row ["id_preg"].'</td>';
        echo 
'<td>'.$row["preg"].'</td></tr>';

    while (
$row=mysql_fetch_array($result2))
    {
?>
    
           <td><input type=radio name=RespPreg1 value=a><?=$row['resp1'];?>
           </td>
           <tr>
           <td></td>
           <td><input type=radio name=RespPreg1 value=b><?=$row['resp2'];?></td></tr>
           <tr><td></td>
            <td><input type=radio name=RespPreg1 value=c><?=$row['resp3'];?></td></tr>
    
         <tr align=left>
         <td height=20 colspan=2>
    
<?    
           
}
      }
}
?>    
    <tr align=left>
      <td height=20 colspan=2>
        <div align="center">
          <INPUT TYPE="SUBMIT" NAME="enviar" VALUE="votar">
          </div>
    </FORM>

Al parecer es porque para todas las preguntas y respuestas toma el mismo "name" con valor a "RespPreg1" entonces mi duda es como meter otro bucle para que el valor del "name" incremente.por ejemplo ahora que se llama "RespPreg2" para la siguiente pregunta. Eso se puede?
Y si no, alguna idea o tips para que pueda hacerlo de mejor manera.

Espero me haya explicado bien.
GRacias de antemano .
Saludos!!