Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/02/2008, 06:46
Avatar de danielrivas
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.