Хорошие у меня есть проблема в настоящее время в моем коде, я работаю в системе записи учеников, где представитель может вписывать несколько учеников, но если я удаляю ученик, не хочу, чтобы исчезли данные представителя, которым этот может иметь другого вписанного, одинокого ученика, он исчез бы если и только если уже он не обладает вписанные ученики.
PD: стой ограничивать, что CedulaRepresentanteRef находится в таблице ученики и - чужеземный ключ CedulaRepresentante (Первичный Ключ), помещенного в таблице представитель.
<?php
$Conexion = mysqli_connect("localhost","root","","prueba2") or die ("No se pudo realizar la conexion");
$Registros = mysqli_query($Conexion, "select * from documentos, estatusalumno, padres, alumnos inner join representantes on alumnos.CedulaRepresentanteRef = representantes.CedulaRepresentante where alumnos.CedulaAlumno = '$_REQUEST[CedulaAlumno]'") or die ("Problemas en el select: ".mysqli_error($Conexion));
if ($Reg = mysqli_fetch_array($Registros))
$CedulaRepresentanteRef = $Reg['CedulaRepresentanteRef'];
{
mysqli_query($Conexion, "delete from alumnos where CedulaAlumno = '$_REQUEST[CedulaAlumno]'")
or die ("Problemas en el select: ".mysqli_error($Conexion));
mysqli_query($Conexion, "delete from estatusalumno where CedulaAlumno = '$_REQUEST[CedulaAlumno]'")
or die ("Problemas en el select: ".mysqli_error($Conexion));
mysqli_query($Conexion, "delete from padres where CedulaAlumno = '$_REQUEST[CedulaAlumno]'")
or die ("Problemas en el select: ".mysqli_error($Conexion));
mysqli_query($Conexion, "delete from documentos where CedulaAlumno = '$_REQUEST[CedulaAlumno]'")
or die ("Problemas en el select: ".mysqli_error($Conexion));
$Registros2 = mysqli_query($Conexion, "select * from alumnos, representantes") or die
("Problemas en el segundo registro: ".mysqli_error($Conexion));
$Reg2 = mysqli_fetch_array($Registros2);
if ($CedulaRepresentanteRef <> $Reg2['CedulaRepresentante'])
{
mysqli_query($Conexion, "delete from representantes where CedulaRepresentante = $CedulaRepresentanteRef")
or die ("Problemas en el select: ".mysqli_error($Conexion));
}
else
{
echo "Se ha eliminado el alumno";
}
}
else
{
echo "No se encontro el alumno";
}
mysqli_close($Conexion);
?>
Я обнаруживаю в твоем коде ошибку консультации следующего кода:
$Registros2 = mysqli_query($Conexion, "select * from alumnos, reñpresentantes") or die ("Problemas en el segundo registro: "....
Я думаю, что ты должен менять твой SELECT, потому что ты консультируешь 2 подмостков, не объединяя их... И в момент прошения cedulaRepresentante, так как он не покажет тебе информацию, которую ты занимаешь...
если я удаляю ученик, я не хочу, чтобы исчезли данные представителя, которым этот может иметь другого вписанного ученика
Перед тем, как удалять представителя в слепую женщину ты должен проверять, что представитель не был присоединен ни к какому другому ученику. Для этого, ты можешь использовать query, как останься:
//no conozco la estructura correcta de tus tablas, sería bueno
//si mostraras la relación entre alumno y cédula del representante
//o que arregles este query debidamente
$stmt = mysqli_prepare("SELECT COUNT(1) FROM alumnos WHERE CedulaRepresentante = ?");
mysqli_stmt_bind_param($stmt, "s", $CedulaRepresentanteRef);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $alumnosDeRepresentante);
if ($alumnosDeRepresentante === 0) {
//borrar representante
//utiliza mysqli apropiadamente, como se muestra en el código previo
mysqli_query($Conexion, "delete from alumnos where CedulaAlumno = '$_REQUEST[CedulaAlumno]'");
}
Это не часть ответа, но твой код не защищен от атак вставки SQL. Пожалуйста проверь этот вопрос и ответ относительно темы.
from t1, t2
, чтоfrom t1 cross join t2
, это правильно. Однако, знают какjoin
impl и # 237; я упоминаю решение о типеfrom t1, t2 where <condición para unir t1 y t2>
какjoin
impl и # 237; я назначаю встречу. Правда, которая должна говорить, чтоfrom t1, t2
-join
impl и # 237; я назначаю встречу он дополнительный и # 241; или и мало использованный. – 08.06.2016, 06:09