Buonasera,
sto impazzendo perchè appena digito il valore nella input (e ottengo il risultato perchè la query restituisce un risultato) mi duplica la pagina a partire dall'inizio del tag body.
Perchè? 
il problema dovrebbe essere nella chiamata giù dello script e più precisamente qui xhttp.open("GET", "teg_contratti.php?azienda=" + aziendaValue, true);
            xhttp.send()
perché richiamo tutta la pagina.
Come faccio ad evitarlo?
<?php
// Includi il file di connessione al database
include 'db_connect2.php';
// Avvio della sessione
session_start();
// Controllo se l'utente è autenticato
if (!isset($_SESSION['logged_in']) || $_SESSION['logged_in'] !== true) {
    // Reindirizzamento alla pagina di login se l'utente non è autenticato
    header("Location: login.php");
    exit;
}
// Recupero il nomeutente e il nome dell'utente dalla sessione
$id_utente = $_SESSION['id'];
$nomeUtente = $_SESSION['username'];
$nomeuser = $_SESSION['nome'];
$cognome = $_SESSION['cognome'];
$filiale = $_SESSION['filiale'];
// Inizializzazione della variabile permessi
$permessi = 0;
// Recupero il ruolo dell'utente dalla tabella users
$query = "SELECT permessi, id, filiale FROM users WHERE username = '$nomeUtente'";
$result = mysqli_query($conn, $query);
// Controllo se la query ha restituito risultati
if ($result && mysqli_num_rows($result) == 1) {
    $row = mysqli_fetch_assoc($result);
    $permessi = $row['permessi'];
    $id_user = $row['id'];
    $filiale = $row['filiale'];
}
// Verifica il ruolo dell'utente
$ruolo = ($permessi == 9) ? "AMMINISTRATORE" : "DIPENDENTE";
$filialeuser = ($filiale == 1) ? 'Palermo' : 'Catania';
// Controlla se è stato inviato un nome di azienda tramite il campo di input
if (isset($_GET['azienda'])) {
    $azienda = $_GET['azienda'];
    // Recupero i dati dalla tabella costi_pratiche_garanzia collegata a lissoc, filtrando per nome azienda
    $query_costi_lissoc = "
    SELECT c.*, l.*
    FROM costi_pratiche_garanzia c
    INNER JOIN lissoc l ON c.nr_pratica = l.`NR. PRATICA`
    WHERE l.`INTEST.` LIKE '%$azienda%'
";
    $result_costi_lissoc = mysqli_query($conn, $query_costi_lissoc);
}
?>
<!DOCTYPE html>
<html lang="it">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>TEG e Contratti</title>
    <!-- Collegamento ai fogli di stile CSS di Bootstrap -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
    <!-- Collegamento agli script di Bootstrap e jQuery -->
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
    <link rel="stylesheet" href="css/custom.css" type="text/css" />
    <style>
    .custom-card {
        position: relative;
        display: flex;
        align-items: center;
        padding: 15px;
        border: 1px solid #ccc;
        margin-bottom: 20px;
    }
    .custom-card .title-container {
        position: absolute;
        top: -15px;
        left: 15px;
        background-color: #fff;
        padding: 0 5px;
    }
    
    .custom-card img {
        max-width: 100px;
        margin-right: 10px;
    }
    @media (max-width: 767px) { /* Aggiungi stili specifici per schermi con larghezza massima di 767px (dispositivi mobili) */
        .custom-card {
            flex-direction: column; /* Imposta l'allineamento verticale per i componenti della card */
            padding: 10px; /* Riduci il padding per adattarsi a schermi più piccoli */
        }
        .custom-card img {
            max-width: 50%; /* Riduci la larghezza dell'immagine per adattarsi a schermi più piccoli */
            margin: 0 auto 10px; /* Centra l'immagine orizzontalmente e aggiungi spazio sotto di essa */
        }
        .custom-card .title-container {
            position: static; /* Ripristina la posizione statica per far sì che il titolo si allinei correttamente */
            margin-bottom: 5px; /* Aggiungi uno spazio inferiore più piccolo tra il titolo e il resto del contenuto */
        }
    }
</style>
</head>
<body>
    <nav class="navbar navbar-light">
        <div class="container d-flex flex-column align-items-start">
            <div class="d-flex align-items-center">
                <a class="navbar-brand" href="home.php">
                    <img src="img/credimpresalogo.jpg" alt="CREDIMPRESA Logo" class="logo-img">
                </a>
                <h6 class="mr-3">User <?php echo $nomeuser . ' ' . $cognome; ?> loggato con profilo <?php echo $ruolo; ?> per la filiale di <?php echo $filialeuser; ?></h6>
                <div>
                    <a class="btn btn-danger" href="logout.php">Logout</a>
                </div>
            </div>
        </div>
    </nav>
<div class="container mt-5">
	<nav aria-label="breadcrumb">
        <ol class="breadcrumb" style="display: inline-flex; width: fit-content;">
            <li class="breadcrumb-item"><a href="home.php">Home</a></li>
			<li class="breadcrumb-item"><a href="fido.php">Fido</a></li>
            <li class="breadcrumb-item active" aria-current="page">Teg & Contratti</li>
        </ol>
    </nav>
        <h4 class="mb-3">Benvenuto, <?php echo $nomeuser; ?></h4>
        <!-- Aggiungiamo un form con un campo di input -->
        <form method="get" action="teg_contratti.php">
            <div class="form-group">
                <label for="aziendaInput">Cerca azienda:</label>
                <input type="text" class="form-control" id="aziendaInput" name="azienda" placeholder="Inserisci il nome dell'azienda" value="<?php echo isset($_GET['azienda']) ? htmlspecialchars($_GET['azienda']) : ''; ?>" onkeyup="eseguiQuery()">
            </div>
            <button type="submit" class="btn btn-primary">Cerca</button>
        </form>
        <div id="risultatiQuery"></div>
            <?php
            // Mostra i risultati solo se è stato inviato un nome di azienda e ci sono risultati dalla query
            if (isset($azienda) && isset($result_costi_lissoc) && mysqli_num_rows($result_costi_lissoc) > 0) {
                echo '<h5>Costi delle pratiche di garanzia collegati a lissoc per l\'azienda "' . htmlspecialchars($azienda) . '":</h5>';
                echo '<table class="table table-bordered">';
                echo '<thead>';
                echo '<tr>';
                // Inserire qui gli header per tutte le colonne dei dati
                echo '<th>ID</th>';
                echo '<th>Descrizione</th>';
                echo '<th>Costo</th>';
                // Esempio per le colonne di lissoc
                echo '<th>Altro Campo Lissoc 1</th>';
                echo '<th>Altro Campo Lissoc 2</th>';
                // ... Aggiungere altre colonne di lissoc se necessario ...
                echo '</tr>';
                echo '</thead>';
                echo '<tbody>';
                // Mostra i dati dalla tabella costi_pratiche_garanzia collegata a lissoc
                while ($row_costi_lissoc = mysqli_fetch_assoc($result_costi_lissoc)) {
                    echo '<tr>';
                    // Inserire qui le celle per tutte le colonne dei dati
                    echo '<td>' . $row_costi_lissoc['id'] . '</td>';
                   
                    // Esempio per le colonne di lissoc
                    //echo '<td>' . $row_costi_lissoc['Altro Campo Lissoc 1'] . '</td>';
                    // ... Aggiungere altre celle per altre colonne di lissoc se necessario ...
                    echo '</tr>';
                }
                echo '</tbody>';
                echo '</table>';
            } elseif (isset($azienda)) {
                // Messaggio di avviso se non ci sono risultati
                echo '<p>Nessun risultato trovato per l\'azienda "' . htmlspecialchars($azienda) . '".</p>';
            }
            ?>
</div>
<br>
</body>
<script>
    function eseguiQuery() {
        var aziendaValue = document.getElementById("aziendaInput").value;
        var risultatiDiv = document.getElementById("risultatiQuery");
        // Rimuovi il contenuto precedente della div
        risultatiDiv.innerHTML = "";
        // Esegui la chiamata AJAX solo se è presente un valore nell'input
        if (aziendaValue.trim() !== "") {
            var xhttp = new XMLHttpRequest();
            xhttp.onreadystatechange = function() {
                if (this.readyState == 4 && this.status == 200) {
                    risultatiDiv.innerHTML = this.responseText;
                }
            };
            xhttp.open("GET", "teg_contratti.php?azienda=" + aziendaValue, true);
            xhttp.send();
        }
    }
</script>
</html>