Agregar condición antes de insertar un registro

  • Autor Autor yoclens
  • Fecha de inicio Fecha de inicio
yoclens

yoclens

Gamma
Diseñador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
saludos amigo tengo una duda con respecto quisiera agregar una condición a mi código que antes de insertar un registro me diga lo siguientes: porque el mínimo de registros a seleccionar es 3 y el máximo es 5, ejemplo si selecciono 2 registros o 6 registros debe indicar el mjs indicando que no cumple con el permitido el código funciona perfectamente pero lo que me faltaría es agregar solamente eso: seria algo como: disculpe para registrar un proyecto deben haber mínimo 3 y un máximo de 5 alumnos

anexo el código


PHP:
<!-- proceso para registrar-->
 <?php
   if(isset($_POST['guardar'])){

   $sql = "SELECT titulo_proyecto FROM inscripcion_proyectos WHERE 
   titulo_proyecto = :titulo_proyecto LIMIT 1"; //Creamos la select
   $check = $DB_con->prepare($sql); //Preparamos la SELECT, de ésta manera evitamos SQL Injection
   $check->bindParam(':titulo_proyecto', $_POST['titulo_proyecto']);//Substituimos las variables de la SELECT
   $check->execute();//Ejecutamos la consulta
   $contador = $check -> rowCount();//Esta función devuelve el número de resultados que ha devuelto la SELECT
   if ($contador > 0) {
   $check->closeCursor();


    echo "<script>
         swal({
               title: 'Ups Aviso...',
               text: '¡ El Registro ya se Encuentra Insertado !',
               type: 'info',
               showConfirmButton: false, 
               allowOutsideClick: false,
               allowEscapeKey: false,
              allowEnterKey: false,
              });
         </script>
          <META HTTP-EQUIV='REFRESH' CONTENT=5;URL=http:inscripcion.php>";

    }
    else
    {

   $sql=$DB_con->prepare("INSERT INTO inscripcion_proyectos (titulo_proyecto,id_pnf,id_profesor,idusuarios) VALUES (:titulo_proyecto,:id_pnf,:id_profesor,:idusuarios)");
   $sql->bindParam(':titulo_proyecto', $_POST['titulo_proyecto']);
   $sql->bindParam(':id_pnf', $_POST['id_pnf']);
   $sql->bindParam(':id_profesor', $_POST['id_profesor']);
   $sql->bindParam(':idusuarios', $_POST['idusuarios']);
   $sql->execute();
   $last_id = $DB_con->lastInsertId();



        for ($i = 0; $i < count($_POST['cedula']); $i++) {

   $sql2=$DB_con->prepare("INSERT INTO inscripcion_alumnos 
   (idinscripcion_proyectos,cedula) VALUES 
   (:idinscripcion_proyectos, :cedula)");
   $sql2->bindParam(':idinscripcion_proyectos', $last_id);
   $sql2->bindParam(':cedula', $_POST['cedula'][$i]);
   $sql2->execute();


      echo "<script>
         swal({
               title: 'Bien Hecho...',
               text: '¡Registro Insertado Correctamente !',
               type: 'info',
               showConfirmButton: false, 
               allowOutsideClick: false,
               allowEscapeKey: false,
              allowEnterKey: false,
              });
            </script>
            <META HTTP-EQUIV='REFRESH' CONTENT=5;URL=http:inscripcion.php>";


               } 

              }
             }
       ?>
   <!-- fin proceso para registrar-->
 
Tendrías que validarlo antes de hacer la ejecución de la inserción, ¿en qué array POST viene la información de los estudiantes seleccionados?
 
PHP:
<!-- consultar alumnos -->
    <?php
              $consulta = $DB_con->query("SELECT
                              pre_inscripcion.idusuarios,
                              pre_inscripcion.idcarreras, 
                              pre_inscripcion.estado,
                              usuarios.id,
                              usuarios.cedula,
                              usuarios.nombres,
                              usuarios.apellidos
                              FROM pre_inscripcion INNER JOIN usuarios ON pre_inscripcion.idusuarios=usuarios.id 
                              WHERE idnivel='2' AND estado='Asistio' ORDER BY nombres ASC");
              $consulta->execute();

if($consulta->rowCount() > 0){

while ($linea = $consulta->fetch(PDO::FETCH_ASSOC)) {


  echo "<div class='col s12 m4'>";
    echo "<input type='checkbox' name='cedula[]' id='chk1{$linea['id']}' value='{$linea['id']}' />";
    echo "<label class='black-text' for='chk1{$linea['id']}'>{$linea['nombres']}&nbsp;&nbsp;{$linea['apellidos']}</label>";
  echo "</div>";


           }

      }

?>
<!-- fin consultar alumnos -->
 
No entendí compañero ¿podrías ser un poco más especifico con la condición?

veo que usas sweetalert, deberias de validar el formularío con ajax y utilizar json para recibir los valores de php a ajax. :encouragement:
 
Atrás
Arriba