Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] encuestas PHP

Estas en el tema de encuestas PHP en el foro de PHP en Foros del Web. hola a todos estoy en un dilema con este proyecto, soy nuevo en PHP y estoy terminando un proyecto de encuestas solo que estoy muy ...
  #1 (permalink)  
Antiguo 13/02/2018, 10:54
 
Fecha de Ingreso: abril-2015
Mensajes: 130
Antigüedad: 9 años, 7 meses
Puntos: 0
encuestas PHP

hola a todos

estoy en un dilema con este proyecto, soy nuevo en PHP y estoy terminando un proyecto de encuestas solo que estoy muy atorado en una modificación que quiero hacer en el final del proyecto.

tengo mi código donde creo la encuesta.

Código HTML:
<section id="form">
    <form action="crearPreguntas.php" class="contact_form" method="post">
        <ul>
            <li>
                <h2>Crear Encuesta</h2>
            </li>   
            <li>
                <label for="user">Encuesta:</label>
                <input type="text" name="titulo" placeholder="Encuesta" required/>
                    
            </li>
            
            <li>
                <label for="preguntas">Preguntas:</label>
                <input type="number" name="preguntas" placeholder="Preguntas" min="0" max="15" required/>
                    
            </li>
            <li>
                <input type="submit" class="submit" value="Crear"/>
            </li>
        </ul>
    </form>
</section> 
y después donde creo las preguntas

Código PHP:
<?php
include 'header.php';
//Capturamos los datos que vienen por post
$titulo $_POST["titulo"];
$preguntas $_POST["preguntas"];


?>
<section id="form">
    <form action="insertarPregunta.php" class="contact_form" method="post">
        <h3><?php echo $titulo?></h3>
        <table>
            <?php
            
//Clico for que recorre la cantidad de prguntas ingresadas
            
for ($i=1$i <= $preguntas$i++){
           
            
?>
            <tr>
                <td>Preguntas <?php echo $i?> &nbsp;
                <input name="p<?php echo $i?>" type="text" size="100" maxlength="100"></td>
                              
            </tr>
            <?php }?>
            
        </table><br><input class="submit" type="submit" value="Insertar">
          <input name="titulo" type="hidden" value="<?php echo $titulo?>">
          <input name="preguntas" type="hidden" value="<?php echo $preguntas?>">
    </form>
</section>
<style>
    #center{
        margin: -10px;
        padding: 0px 0px 20px;
        
    }
</style>
<center id="center">
    <a id="pagina1" href="javascript:window.history.back();">&laquo;volver Atras</a>
</center>
y guardo mi encuesta y mis preguntas.

Código PHP:
<?php
$titulo 
$_POST["titulo"];
$preguntas $_POST["preguntas"];
        
//conexion con Base de datos
require 'conexion.php';
//obtenemos la fecha del sistema
$fecha_actual date("y-m-d");

//insertamos la nueva encuesta

$sql "INSERT INTO encuestas(titulo, fecha) VALUES ('$titulo' ,'$fecha_actual')";
$sql mysqli_query($conexion,$sql);

// Ahora obtenemos la id de la encuesta que acabamos de insertat
$sql "SELECT id FROM encuestas ORDER BY fecha";
$sql mysqli_query($conexion$sql);
while (
$row mysqli_fetch_array($sql)){
    
$id $row["id"];
}
//recorremos las preguntas
for ($i 1$i <= $preguntas$i++){
    
//Obtenemos el texto de la pregunta
    
$preg p.$i;
    
$pas $_POST[$preg];
    
$texto =  $pas;
    
    
//y lo insertamos
    
$sql "INSERT INTO respuestas(texto, idenc) VALUES ('$texto' ,'$id')";
    
$sql mysqli_query($conexion,$sql);
}
header("Location: crearEncuesta.php");

?>
y por ultimo muestro mi cuestionario según la selección del usuario

Código PHP:
<?php

//capturamos la variable que viene por post del archivo ver encuesta 

$opcion $_POST["opcion"];
require 
'conexion.php';
include 
'header.php';

//seleccionamos la encuesta de acuerdo a la variable $opcion
$consulta "SELECT * FROM encuestas WHERE id=$opcion";

//Ahora recorremos los datos Titulo, fecha, id de la encuesta seleccionada

$consulta mysqli_query($conexion$consulta);
while (
$row mysqli_fetch_array($consulta)){
    
$titulo $row["titulo"];
    
$fecha $row["fecha"];
    
$id $row["id"];
}

?>
<section id="form">
    <form action="inserVotacion.php" class="contact_form" name="form1" method="post">
        <table>
            <tr>
                <!--Mostramos el titulo de la encuesta-->
                <td colspan="2"> <h3><?php echo $titulo?></h3></td>
            <input type="hidden" name="id" value="<?php echo $id?>">
            </tr>
            <?php
            
//consulta que captura el texto , id de la tabla respuestas
            
$sql "SELECT texto,id FROM respuestas WHERE idenc='$id'";
            
$sql mysqli_query($conexion,$sql);
            
//ahora recorremos los datos texto, id que estan vinculadas a la cuenta seleccionada
            
while ($row mysqli_fetch_array($sql)){
                
$texto $row["texto"];
                
$idres $row["id"];
                 
            
?>
            
        
            <tr>
              <!--  <td width="50"><input type="radio" name="opcion" value="<?php echo $idres?>" required</td>
                <td width="470"><?php echo $texto?></td>-->
                <td width="50"><?php echo $idres?></td>
                <td width="470"><?php echo $texto?></td>
                <td> SI <input type="radio" name="radio<?php echo $idres?>" value="SI"></td>
                <td> NO <input type="radio" name="radio<?php echo $idres?>" value="NO"></td>
                <td><textarea name="comentarios<?php echo $idres?>" rows="5" cols="20">Escribe aquí tus Hallazgos</textarea></td>
                <td><textarea name="acciones<?php echo $idres?>" rows="5" cols="20">Escribe aquí tus Acciones Correctivas</textarea></td>
            </tr>
            <?php ?>
            <tr>
                <td>
                    <input class="submit" type="submit" value="Guardar"></input>
                <td>Esta encuesta esta&aacute; del <?php echo $fecha?></td>
                </td>
            </tr>
        </table>
    </form>
</section>
<center>
    <div id="paginador">
        <form action="grafico.php" method="post">
            <a id="pagina1" href="javascript:window.history.back();">&laquo; Volver Atras</a>
            <input type="hidden" name="opcion" value="<?php echo $opcion;?>">
            <input class="submit" type="submit" value="Ver"></input>
        </form>
    </div>
</center>
<?php
        
include 'foother.php';
?>
sola mente tengo una duda al momento de guardar mi cuestionario.

en la parte de

Código PHP:
<tr>
              <!--  <td width="50"><input type="radio" name="opcion" value="<?php echo $idres?>" required</td>
                <td width="470"><?php echo $texto?></td>-->
                <td width="50"><?php echo $idres?></td>
                <td width="470"><?php echo $texto?></td>
                <td> SI <input type="radio" name="radio<?php echo $idres?>" value="SI"></td>
                <td> NO <input type="radio" name="radio<?php echo $idres?>" value="NO"></td>
                <td><textarea name="comentarios<?php echo $idres?>" rows="5" cols="20">Escribe aquí tus Hallazgos</textarea></td>
                <td><textarea name="acciones<?php echo $idres?>" rows="5" cols="20">Escribe aquí tus Acciones Correctivas</textarea></td>
            </tr>
como puedo hacer para guardar en mi base de datos, se que tiene que ir guardando pregunta por pregunta y respuesta en un siclo pero no se como realizar esto.

estas son mis bases de datos

BD_encuestas
ID
Fecha
titulo

BD_preguntas
id
idenc
testo

BD_respuestas
id
id_pregunta
idenc
valor
accion
hallazfo
fecha

Última edición por antonio_dsanchez; 13/02/2018 a las 11:14
  #2 (permalink)  
Antiguo 14/02/2018, 03:13
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 18 años
Puntos: 32
Respuesta: encuestas PHP

¿que quieres meter todas las preguntas en la base de datos de golpe?

¿Por qué no lo haces una a una y vas rellenando una lista? Según introduzca la pregunta, se vaya rellenando dicha lista.

Saludos.
__________________
Somos una serie de acontecimiento que puede venir al caso en un momento dado.
  #3 (permalink)  
Antiguo 18/02/2018, 00:12
 
Fecha de Ingreso: abril-2011
Mensajes: 168
Antigüedad: 13 años, 6 meses
Puntos: 5
Respuesta: encuestas PHP

yo lo haría con un UPDATE con eso te complicas menos.

Código PHP:
Ver original
  1. $query="UPDATE tu bd SET campos a actualizar  WHERE id='$id'"; (aqui lo tomas por los valores del id )
  #4 (permalink)  
Antiguo 22/02/2018, 12:22
 
Fecha de Ingreso: abril-2015
Mensajes: 130
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: encuestas PHP

gracias ya esta solucionado

Código PHP:
Ver original
  1. <tr>
  2.               <!--  <td width="50"><input type="radio" name="opcion" value="<?php echo $idres; ?>" required</td>
  3.                 <td width="470"><?php echo $texto; ?></td>-->
  4.             <?php echo "<fieldset>
  5.                  <legend>".$texto."</legend>
  6.                 <label>
  7.                    <input type='radio' name='radio".$idres."' value='1' onclick='deshabilita()' required> Si
  8.                  </label>
  9.                  <label>
  10.                      <input type='radio' name='radio".$idres."' value='0' onclick='habilita()'required> No
  11.                  </label>
  12.                  <label>
  13.                      <textarea rows='5' cols='10' name='Hallazgo".$idres."' disabled class='inputText' required>Se tiene un hallazgo?</textarea>
  14.                  </label>&nbsp;
  15.                 <label>
  16.                      <textarea rows='5' cols='10' name='Accion".$idres."' disabled class='inputText' required>Cual es la acción correctiva</textarea>
  17.                  </label>
  18.            </fieldset>"; ?>    
  19.             </tr>
  20.             <?php } ?>
  21.             <tr>
  22.                 <td>
  23.                     <input class="submit" type="submit" value="Guardar"></input>
  24.                 <td>Esta encuesta fue creada el <?php echo $fecha; ?></td>
  25.                 </td>

y asi guardo

Código PHP:
Ver original
  1. while($row = mysqli_fetch_array($result)){
  2.     $id_preg= $row[0];
  3.     $resp= $_POST ['radio'.$id_preg];
  4.     if (isset($_POST['Accion'.$id_preg])) {
  5.     $Accion = $_POST['Accion'.$id_preg];
  6.     }
  7.     else{
  8.       $Accion = "NULL" ;
  9.     }
  10.     if (isset($_POST['Hallazgo'.$id_preg])) {
  11.     $Hallasgo = $_POST['Hallazgo'.$id_preg];
  12.     }else{
  13.        $Hallasgo = "NULL";
  14.     }
  15.            
  16.         $consulta = "INSERT INTO opciones (idenc, id_pregunta, valor, Accion, hallazgo, fecha, hora) VALUES ('$id' ,'$id_preg' ,'$resp' ,'$Accion' ,'$Hallasgo' ,$fecha_actual ,'$Hora')";
  17.         $resultado = mysqli_query($conexion,$consulta);
  18.        
  19.             if ($resultado) {
  20.                         echo "perfil almacenado. <br />";
  21.  
  22.                 }
  23.                 else {
  24.                         echo "error en la ejecución de la consulta. <br />";
  25.                 }

Etiquetas: dinamica, dinamicamente, encuesta, mysql
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 08:10.