Hej Wam,
Mam listę userów oraz listę procedur. Jedna procedura może być przypisana do wielu userów.
Przy wypluwaniu procedur z bazy danych chcę aby wyszukiwał mi procedury po określonej frazie, wyrazie.
Przez to że szukana procedura przypisana jest do wielu userów, wyświetla się ona tyle razy ilu jest userów.
Chciałbym stworzyć obsługę tego tak aby procedura nawet jeśli przypisana jest do wielu użytkowników wyświetlana była tylko raz.
Na razie jedyny sensowny pomysł jaki przychodzi mi do głowy to:
Stworzyć tablicę,
Jeśli wyszuka procedurę z podaną frazą, wyrazem to dodaje ją do tablicy i tak ze wszystkimi procedurami jakie znajdzie,
W pętli for trwającej tyle ile tablica.length sprawdza czy tablica[name] != tablica[name + 1]
Jeśli inny to wyświetla ją na ekran i tak sprawdza wszystkie elementy tablicy.
Pytania do Was:
a) Moim okiem jest, ale czy Waszym również mój pomysł ma ręce i nogi?
b) Jest jakiś prostszy sposób na osiągnięcie tego co potrzebuje?
c) A może jest błąd logiczny w kodzie, który umieszczam poniżej.
Bardzo proszę o pomoc. :)
<?php
if(isset($_POST['submit'])){
$connection = new mysqli('localhost', 'root', '', 'projekt_cmp');
$check_name = $_POST['name_procedure'];
$sql_name = "SELECT * FROM connections, procedures
WHERE procedures.nameProcedure LIKE '%$check_name%'
AND connections.idProcedure = procedures.idProcedure";
$result_name = $connection->query($sql_name);
while($row_name = $result_name->fetch_assoc()){
$name_procedure = $row_name['nameProcedure'];
$desc_procedure = $row_name['descProcedure'];
$type_procedure = $row_name['typeProcedure'];
$file_procedure = $row_name['fileProcedure'];
echo "Name of procedure: <b>" . $name_procedure . "</b><br>";
echo "Description of procedure: " . $desc_procedure . "<br>";
echo "Type of procedure: " . $type_procedure . "<br>";
echo "<a href=uploads/" . $file_procedure . ">Podejrzyj PDF</a><br>";
echo "-----------------------------------------------<br>";
}
$result_name->free_result();
}
?>
<!DOCTYPE html>
<html>
<body>
<form method="post">
<input type="text" name="name_procedure" /><br>
<input type="submit" name="submit" />
</form>
</body>
</html>
Zdjęcia z bazy danych:
Logika działania jest taka, że:
Przy dodawaniu nowej procedury, procedura z jej opisem trafia do tabeli procedures,
później łapane jest jej ID oraz ID usera dla którego dana procedura ma zostać przypisana i tworzone jest nowe połączenie w tabeli connections. Czynność jest powtarzana tyle razy ile było wybranych userów w formularzu.