Comó вводить в чужеземном поле таблицы, стоимости основного поля PK связанной таблицы, с динамическим select?

//archivo recibe el formmulario
$conexion = conectar();

  $grupo      =  $_POST['numgpo'];
  $capacidad  =  $_POST['capacidad'];
  $aula       =  $_POST['aula'];
  $turno      =  $_POST['turno'];
  $periodo    =  $_POST['periodo'];
  $materia    =  $_POST['materia'];
  $profesor   =  $_POST['profesor'];
  $lunes      =  $_POST['lunes'];
  $martes     =  $_POST['martes'];
  $miercoles  =  $_POST['miercoles'];
  $jueves     =  $_POST['jueves'];
  $viernes    =  $_POST['viernes'];

  $a = "INSERT INTO grupos(NumGpo, capacidad, aula, turno, periodo, materia, profesor, 
                           lunes, martes, miercoles, jueves, viernes) 
                           VALUES ('$grupo', '$capacidad', '$aula', '$turno', '$periodo', '$materia', '$profesor', 
                                   '$lunes', '$martes', '$miercoles', '$jueves', '$viernes')";

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

  echo $consulta;

$conexion = conectar(); //archivo externo

$periodos = "SELECT * FROM periodos";
$resultPeriodos = mysqli_query($conexion, $periodos);

$materias = "SELECT * FROM materias";
$resultMaterias = mysqli_query($conexion, $materias);

$profesores = "SELECT *  FROM profesores";
$resultProfesores = mysqli_query($conexion, $profesores);

<div class="form-group">
  <label for="periodo">Periodo:</label>
    <select name="periodo" id="periodo" class="form-control">
  <?php while ($peri = mysqli_fetch_array($resultPeriodos, MYSQLI_NUM)) { ?>
      <option value="<?php $peri[0] ?>"><?php echo $peri[2]; ?></option>
  <?php } ?>
    </select>
</div>
<div>
<label for="materia">Materia:</label>
 <select name="materia" id="materia" class="form-control">
  <?php while ($mate = mysqli_fetch_array($resultMaterias, MYSQLI_NUM)) { ?>          <option value="<?php $mate[0] ?>"><?php echo $mate[2]; ?></option>
    <?php } ?>
   </select>
   </div>
   <br>
   <div>
   <label for="profesor">Nombre Profesor:</label>
<select name="profesor" id="profesor" class="form-control">
   <?php while ($profe = mysqli_fetch_array($resultProfesores, MYSQLI_NUM)) { ?>
  <option value="<?php $profe[0] ?>"><?php echo $profe[2]; ?></option>
   <?php } ?>
</select>
1
задан 16.11.2016, 21:11
2 ответа

Ошибка : Cannot add or update в child row: в foreign key constraint fails (vasco. grupos, CONSTRAINT grupos_ibfk_1 FOREIGN KEY (materia) REFERENCES materias (idMateria) ON DELETE CASCADE ON UPDATE CASCADE)

Ошибка говорит : idMateria (конечно в переменной $materia) он не существует в таблице materias и поэтому razГіn он не позволит тебе вводить нового grupo. Если ты обращаешь внимание основательно, тебе не хватает

echo в value option, например:

<option value="<?php $peri[0] ?>"><?php echo $peri[2]; ?></option>

DeberГ-Схвати менять их во что-то asГ-:

<option value="<?php echo $peri[0] ?>"><?php echo $peri[2]; ?></option>

//

Считает реализовывать санкционировать данные перед тем, как делать один insert/update, например:

  1. Санкционировать тип / формат данных.

  2. Санкционировать существование ids связанных реестров (eg: idMateria, idGrupo)

ЗАМЕЧАЕТ : Я рекомендую тебе читать эту статью о SQL Injection

0
ответ дан 24.11.2019, 12:36
  • 1
    спасибо, они пойдите он предполагается помещает их внутри цикла, и они существуют, потому что консультация, к которой он применяется fetch_all () выбирает все реестры, но продолжает помечать сообщение, что-то еще бьет козырем меня –  Armando Arellano 16.11.2016, 00:01
  • 2
    договора, уже эта в конце файла, извинения из-за формата кодов –  Armando Arellano 16.11.2016, 16:15
  • 3
    Печатает прямо ошибку:: Cannot add or update в child row: в foreign key constraint fails, который я поместил наверху, из-за которого он не даже стоимость их < select> с там будь плохой. должна быть неправильной форма, как я помещаю их –  Armando Arellano 16.11.2016, 20:07
  • 4
    такой он был таким, как он это пробовал, но не получай стоимость selects –  Armando Arellano 16.11.2016, 21:14
  • 5
    это верно часть была поэтому, большое спасибо из-за совсем привета –  Armando Arellano 16.11.2016, 21:35

funciГіn mysqli_query возвращает стоимость типа Mysqli_Result

не объект iterable "per", потом ты не можешь использовать это прямо в структуре foreach. В Вашем месте призови к одному Ваш mГ©todo fetch_x (array, assoc, номер)

<?php while($mate = $materias->fetch_assoc()): ?>
   <option value="<?php $mate['idMateria'] ?>">
       <?php echo $mate['materia']; ?>
   </option>
<?php endwhile; ?>
0
ответ дан 24.11.2019, 12:36
  • 1
    большое спасибо, уже я это изменил но и ошибка продолжает помечать. ids, которые я пробую ввести, существуют, потому что они - все те, кто он выбирает консультацию таблицы. Что-то еще бьет козырем меня. –  Armando Arellano 16.11.2016, 00:03

Теги

Похожие вопросы