Problema con tabla de la base de datos

Iniciado por welchu, 2 Agosto 2018, 11:29 AM

0 Miembros y 1 Visitante están viendo este tema.

welchu

Hola, me gustaría contar el problema que tengo a ver si alguien me puede ayudar.
He creado una tabla en una base de datos con las siguientes columnas:


Table: union

exercise_id_fk   tag_id_fk
      1                 1
      1                 2
      2                 1
      2                 3

Lo que pretendo con mi programa es que un usuario debe elegir las etiquetas que desee para que se muestre en pantalla el ejercicio que corresponde con las etiquetas elegidas. Por ejemplo si el usuario elige la etiqueta 1, le aparecerán los ejercicios 1 y 2. Si elige las etiquetas 1 y 3, le aparecen los ejercicios 1 y 2.

El problema de mi programa es que cuando el usuario elige por ejemplo la etiqueta 1 y 3, aparecen los ejercicios 1 y el 2 repetido. O cuando elige la etiqueta 1 y 2, aparece el ejercicio 1 repetido.

Alguno sabe alguna forma para que esto no ocurra? Que solo se muestren los ejercicios una vez?

Aquí muestro parte de mi código:


$sql = "SELECT * FROM exercises, union, tags where exercise_id = exercise_id_fk and tag_id = tag_id_fk";

if (!empty($_SESSION['tags_array'])) {
    $sql .= " and (";
    foreach ($_SESSION['tags_array'] as $tagId)
        $sql .= 'tag_id = ' . $tagId . ' or ';

    $sql .= "tag_id = -1);";
}

$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
    echo $row["exercise_id"] . ". " .  $row["title"] . "<br>";
}