Foros del Web » Programando para Internet » PHP »

Cambio de sistema de encuestas en ASP a PHP

Estas en el tema de Cambio de sistema de encuestas en ASP a PHP en el foro de PHP en Foros del Web. Hola a todos: Estoy cambiando un sistema de encuestas en ASP a PHP y llevo horas atascado en la adicion de los votos a la ...
  #1 (permalink)  
Antiguo 14/02/2008, 06:46
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 16 años, 5 meses
Puntos: 6
Pregunta Cambio de sistema de encuestas en ASP a PHP

Hola a todos:

Estoy cambiando un sistema de encuestas en ASP a PHP y llevo horas atascado en la adicion de los votos a la base de datos. Os explico:

Para asociar las encuestas con las preguntas que contienen (ya que van en la misma tabla "encuestas", a las preguntas se le da el valor de la "id" de la encuesta en el campo "identificador".

El problema viene cuando proceso el formulario "encuesta.php" a "verencuesta.php". En ASP tenía lo siguiente:

Código PHP:
<form method="POST" action="verencuesta.asp?id=<%=request.QueryString("id")%>">
                              <
table width="100%" border="0" class="txt_cajas">
                                <
tr>
                                  <
td><b><%=ucase(rse("pregunta"))%></b></td>
                                </
tr>
                                <%
            
set rse1=createobject("ADODB.Recordset")
            
sqltxt1="SELECT  * from encuestas where identificador="&rse("idencuesta")&" order by pregunta"
            
rse1.open sqltxt1,connae
            
if not rse1.EOF then
                rse1
.movefirst
                
while not rse1.EOF
            
%>
                                <
tr>
                                  <
td><class="tit_noticias01"><%=rse1("pregunta")%></b></td>
                                </
tr>
                                <%for 
0 to rse1("nopciones")-1 step 1    %>
                                <
tr>
                                  <
td><input type="radio" value="<%=i%>" name="<%=rse1("idencuesta")%>">
                                      <
font face="Verdana" size="1"><%=rse1(i)%></font></td>
                                </
tr>
                                <%
next
              rse1
.movenext
              wend
              end 
if
              
rse1.close
            rse
.close%>
                              </
table>
                              <
p align="center">
                                <
label><br>
                                <
input name="Submit" type="submit" class="pie_foto" value="Enviar">
                                </
label>
                              </
p>
                            </
form
Y yo en php lo he interpretado asi:

Código PHP:
<form method="POST" action="verencuesta.php?id=<?=$_GET["id"]?>&preguntas=""">
                              <table width="100%" border="0" class="txt_cajas">
                                <tr>
                                  <td><b><?=strtoupper($datos["titulo"]);?></b></td>
                                </tr>
                                    <?
              $s
="select * from encuestas where identificador=".$_GET["id"]." order by pregunta";
              
$q=mysql_query($s);
              while(
$preg=mysql_fetch_array($q))
              {
              
?>    <? $i=1?>
                                <tr>
                                  <td><b class="tit_noticias01"><?=$preg["pregunta"];?></b></td>
                                </tr>
                               <? for($i=1;$i<=$preg["nopciones"];$i++)
                                {
                                
?>
                                <? $preguntas[$i]=$preg["id"];?>
                                <tr>
                                  <td><input type="radio" value="<?=$preg["tr".$i];?>" name="<?=$preg["id"];?>">
                                      <font face="Verdana" size="1"><?=$preg["tr".$i];?></font></td>
                                </tr>
                                <?
}
?><?    }
?>
                              </table>
                             
                              <p align="center">
                                <label><br>
                                <input name="Submit" type="submit" class="pie_foto" value="Enviar">
                                </label>
                              </p>
                            </form>
Y el la parte que procesa el formulario en verencuesta.asp:

Código PHP:
set rse1=createobject("ADODB.Recordset")
sqltxt1="SELECT  * from encuestas where identificador="&request.QueryString("id")
rse1.open sqltxt1,conn
if not rse1.EOF then
    rse1
.movefirst
    
while not rse1.EOF
                
if request.form(""&rse1("idencuesta")&"")<>"" then


    select 
case true

    
case request.form(""&rse1("idencuesta")&"")=0
       campo
="r1"
    
case request.form(""&rse1("idencuesta")&"")=1
        campo
="r2"
    
case request.form(""&rse1("idencuesta")&"")=2
           campo
="r3"
    
case request.form(""&rse1("idencuesta")&"")=3
           campo
="r4"
    
end select    

    sqltxt
="update encuestas set "&campo&" = "&campo&"+1 where idencuesta="&rse1("idencuesta")
    
    
conn.execute sqltxt
end 
if

rse1.movenext
wend
end 
if
rse1.close
%> 
Que en php interpreto asi:

Código PHP:
<?
              $s
="select * from encuestas where identificador=".$_GET["id"]." order by pregunta";
              
$q=mysql_query($s);
              while(
$preg=mysql_fetch_array($q))
              {
$titulo=$_POST[$preg["id"]];
              
?>
<? 
switch ($preg["id"])
{
    case 
"1"$campo="r1";break;
    case 
"2"$campo="r2";break;
    case 
"3"$campo="r3";break;
    case 
"4"$campo="r4";break;
break;
}
?><? $s="update encuestas set '$campo'='1' where id=".$_GET["id"]?><? ?>
Ya se que es un poco lio, pero si alguien me puede echar una mano os lo agradeceria.
  #2 (permalink)  
Antiguo 14/02/2008, 07:56
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 16 años, 5 meses
Puntos: 6
Re: Cambio de sistema de encuestas en ASP a PHP

Ahora estoy intentando procesar los datos del formulario con un array asociativo, que haga que se asocie el numero de pregunta con la respuesta elegida por el usuario.

Alguien me puede orientar un poquillo? gracias!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:16.