false, 'error' => 'Datenbankverbindung fehlgeschlagen']); exit(); } mysqli_set_charset($conn, "utf8"); $text = isset($_GET['text']) ? trim($_GET['text']) : ''; if (empty($text)) { echo json_encode(['success' => true, 'synonyms' => [], 'html' => '']); exit(); } // Descriptor erstellen (Kleinbuchstaben, Leerzeichen durch Unterstrich) function prepare_desc($text) { $desc = strtolower($text); $desc = str_replace(' ', '_', $desc); return $desc; } $desc = prepare_desc($text); // Erst IDLinking für den Begriff finden $sql = "SELECT IDLinking FROM Synonyms WHERE Descriptor = '" . mysqli_real_escape_string($conn, $desc) . "' LIMIT 1"; $res = mysqli_query($conn, $sql); $synonyms = []; $html = ''; if ($res && mysqli_num_rows($res) > 0) { $row = mysqli_fetch_assoc($res); $idLinking = $row['IDLinking']; // Alle Synonyme mit dieser IDLinking laden (außer dem Begriff selbst) $sql2 = "SELECT ID, Text, Descriptor FROM Synonyms WHERE IDLinking = $idLinking AND Descriptor != '" . mysqli_real_escape_string($conn, $desc) . "' ORDER BY Text"; $res2 = mysqli_query($conn, $sql2); if ($res2) { while ($syn = mysqli_fetch_assoc($res2)) { $synonyms[] = [ 'id' => $syn['ID'], 'text' => $syn['Text'], 'descriptor' => $syn['Descriptor'] ]; // HTML für Anzeige generieren $html .= ''; $html .= 'SYN'; $html .= '' . htmlspecialchars($syn['Text']) . ''; $html .= ''; $html .= ''; $html .= ''; $html .= ''; } } } echo json_encode([ 'success' => true, 'synonyms' => $synonyms, 'html' => $html, 'count' => count($synonyms) ]); mysqli_close($conn); ?>