Obtener доблесть seleccionados de arreglo de checkbox, y de arreglo de inputs través de bucles. Довод "против" Para ejecutar una consulta Лос доблесть obtenidos

Доблесть En este código intento obtener de checkbox seleccionados, dentro de un bucle, доблесть y en otro bucle anidado se obtienen de inputs fijos. Подставьте estos доблесть iterados obtenidos dentro de los bucles buscaba ejecutar un delete poniendo параметро Комо where Лос доблесть de cada alumno seleccionado y Лос grupos доблесть сына que de вводит ya predefinidos. Intentaba que se ejecutara el query подставьте Лос доблесть de n checkbox довод "против" que se hayan seleccionado y sus respectivos grupos, pero никакой alcanza ejecutarlo параграф todos Лос registros encontrados, я parece es ошибка de lógica en los bucles.

El problema es que la sentencia никакой se ejecuta параграф todos Лос доблесть checkbox seleccionados. СИ se seleccionaron 40 Por ejemplo, el удаляют соло se ejecuta параграф 34,

 $alumno     = $_POST["idalumno"]; //arreglo [] de alumnos (recogiendo id de arreglo de checkbox)
  $idgrupo    = $_POST["idgrupo"]; //arreglo [] de grupos, inputs (hidden)

  for ($i=0; $i < count($alumno); $i++) { //mientras la variable sea menor al tamaño de arreglo va aumentando de uno en uno

       $alum = $alumno[$i]; //obteniendo cada idalumno

       for ($a=0; $a < count($idgrupo); $a++) {

             $gpo = $idgrupo[$a]; //obteniendo id de cada grupo

       $verifica = "SELECT * FROM alumno_grupo WHERE idAlumno = '{$alum}' and idGrupo = '{$gpo}'";
       $consul = mysqli_query($conexion, $verifica)or die (mysqli_error($conexion)); 
       $num_rows = mysqli_num_rows($consul);
       if ($num_rows > 0) {

       $cons = "DELETE FROM alumno_grupo WHERE idAlumno = '{$alum}' AND idGrupo = '{$gpo}'";  

       $consulta = mysqli_query($conexion, $cons)or die (mysqli_error($conexion));  

       if ($consulta){
  ?>
   <script>
   alert('ALUMNO DADO DE BAJA DE LOS GRUPOS-MATERIA, CORRECTAMENTE')
   location.href = "../View/Admin/baja_alum.php"; 
   </script>

  <?php
  } else {  //si no se ejecuta la consulta
  ?>
   <script>
   alert('ATENCION !!!! ERROR AL ELIMINAR')
   location.href = "../View/Admin/baja_alum.php"; 
   </script>

  <?php
  }
       } else {  //si no se encuentran los registros
       ?>

      <script>
       alert('ATENCIÓN!!: NO SE ENCONTRO REGISTRO CON ESE ALUMNO Y GRUPO-MATERIA')
       location.href = "../View/Admin/baja_alum.php"; 
      </script>

       <?php
       } //else
    } //for
  } //for
0
задан 03.01.2017, 02:07
0 ответов

лучше с одним приготовьте для уничтожения и query для консультации

   $conexion = new mysqli("localhost", "my_user", "my_password", "world");
   for ($i=0; $i < count($alumno); $i++) { //mientras la variable sea menor al tamaño de arreglo va aumentando de uno en uno

       $alum = $alumno[$i]; //obteniendo cada idalumno

       for ($a=0; $a < count($idgrupo); $a++) {

          $gpo = $idgrupo[$a]; //obteniendo id de cada grupo

          $resultado = $conexion->query("SELECT * FROM alumno_grupo WHERE idAlumno = '{$alum}' and idGrupo = '{$gpo}'");
          if ( $resultado->num_rows > 0){

              $sth = $conexion->prepare("DELETE FROM alumno_grupo WHERE idAlumno = ? AND idGrupo = ?);  
              $sth->bind_param("ii", $alum, $gpo); //i para integer , s para string
              if ($sth->execute()){
                 //codigo script
              }else{
              //codigo script

             }
         } else {
    }
1
ответ дан 03.12.2019, 17:54
  • 1
    спасибо, привет: продолжи удалять равно единственно часть отборных ids, и пошли эту ошибку: Фатальная ошибка: Maximum execution украл of 30 seconds exceeded в линии execute, –  04.01.2017, 09:03
  • 2
    Размести má s время ejecució n в твой сервер –  15.01.2017, 08:10
  • 3
    договора, ¿ как нужно делать? probaré. спасибо –  22.01.2017, 01:48

Смоги быть проблемой как рисунка, так и цикла. Я предлагаю, чтобы перед любой вещью ты проверил, что у тебя есть те же ключи в два arrays, того, чтобы быть так тогда, используй следующее:

Вероятно будьте хорошей идеей убегать все группы и ученики, если они string, ты можешь использовать нечто похожее:

array_walk($idgrupo, function(&$value, &$key) {
  $value = mysqli_real_escape_string($conexion, $value);
});

Потом уже мы можем делать loop:

$alumno     = $_POST["idalumno"]; //por si falta...
$idgrupo    = $_POST["idgrupo"];
$array_final = [];
foreach($alumno AS $id => $nombre){      
   $array_final[] = (mysqli_query($conexion, "DELETE FROM alumno_grupo WHERE idAlumno = '{$id}' AND idGrupo IN (".implode(',', $idgrupo).")") ? "El alumno $nombre Se ha borrado de todos los grupos seleccionados." : "Hay un error");
}

Нижний Javascript напечатает то, что мы посылаем ему..., не необходимо посылать 5000 alerts + 5000 <script>

echo '<script>
 alert('.implode("\n", $array_final).');
 location.href = "../View/Admin/baja_alum.php"; 
</script>';
1
ответ дан 03.12.2019, 17:54
  • 1
    idgrupos и idalumnos они numé богатые, Уже они не должны убегать тогда? –  04.01.2017, 18:50
  • 2
    Не необходимо они убегать, только implotarlos и включать их в статью IN (), я надеюсь, что это решает твою проблему. –  04.01.2017, 18:52
  • 3
    я протестирую это, спасибо, извини, но я думаю, что ему нужен paré ntesis –  04.01.2017, 20:09
  • 4
    В самом деле paré ntesis и точка с запятой :) ¡ спасибо! уже está изданный. –  04.01.2017, 20:12
  • 5
    спасибо, привет. кажется, что он не реализует решение sql, он ничего не выполняет –  04.01.2017, 23:45