PHP - Comparar 2 tablas de la base de datos mediante PHP

 
Vista:
sin imagen de perfil
Val: 7
Ha aumentado su posición en 20 puestos en PHP (en relación al último mes)
Gráfica de PHP

Comparar 2 tablas de la base de datos mediante PHP

Publicado por galep (5 intervenciones) el 16/08/2018 13:17:06
Hola, estoy haciendo un programa donde comparo en una base de datos (Mysql-Workbench) 2 columnas (difficulty, difficulty_student) de 2 tablas diferentes (EXERCISES, ANSWERS) en una columna difficulty_choice de la tabla ANSWERS.

Me refiero a esto:

IMAGE

Comparo ambas tablas mediante un VARCHAR (YES or NO). Si el usuario ha cambiado la dificultad del ejercicio, la celda será ‘YES’, si no la ha cambiado, la celda será ‘NO’.

Estas son mis tablas:

1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE exercises (
    exercise_id INT,
    difficulty VARCHAR(30),
    PRIMARY KEY(exercise_id)
);
 
CREATE TABLE answers(
    exercise_id_fk INT,
    student_id INT,
    difficulty_change VARCHAR(3),
    difficulty_student VARCHAR(30),
    FOREIGN KEY(exercise_id_fk) REFERENCES exercises(exercise_id)
);

Mi problema es que las líneas de la tabla ANSWERS no existen hasta que el usuario pulse SUBMIT en el programa. Por lo que solo he conseguido que se comparen las columnas que están en la tabla mediante los comandos que hay debajo en Mysql-Workbench.

Lo que necesito es que las columnas se comparen en difficulty_change cuando el usuario pulse SUBMIT. Me podéis ayudar a hacerlo? No lo consigo.

He conseguido que se comparen las columnas mediante los siguientes códigos pero quiero que se llamen desde el programa para que no tenga que ir a Mysql-Workbench cada vez para ejecutarlos.


1
2
3
4
5
6
7
8
9
10
11
12
SELECT e.difficulty, a.difficulty_student,
case when e.difficulty = a.difficulty_student then 'NO' else 'YES'
         END  as difficulty_change
FROM exercises e
INNER JOIN answers a  on e.exercise_id=a.exercise_id_fk;
 
 
UPDATE answers a
INNER JOIN exercises e  on e.exercise_id=a.exercise_id_fk
set a.difficulty_change = case
     when e.difficulty = a.difficulty_student then 'NO' else 'YES' END
where e.exercise_id=a.exercise_id_fk;

Este es mi php que puede que ayude:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
 
if (isset($_POST['submit'])) {
    $user_id = $_SESSION['user_id'];
    $user_check_query = "SELECT * FROM users WHERE id='$user_id'";
    if(isset($_POST['choice'], $_POST['choose'])){
            $choice_answer=$_POST['choice'];
            $difficulty=$_POST['choose'];
//      */$user_id = $_SESSION['user_id'];*/
            $query = "INSERT INTO answers (exercise_id_fk, student_id, difficulty_student, choice_answer) VALUES ('$id','$user_id', '$difficulty', '$choice_answer')";
            $sql=mysqli_query($conn,$query);
 
    }
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder