Creare una tabella interattiva da MySql

di il
4 risposte

Creare una tabella interattiva da MySql

Salve,
vi spiego un attimo come funziona il mio sistema prima di porvi la domanda. L'utente inserisce una segnalazione nel mio sistema che non è altro che serie di dati. La segnalazione viene salvata nel mio database. L'admin poi deve visionare tutte le segnalazioni in una tabella e premendo su una di esse si deve aprire una pagina dove è possibile modificare il contenuto della segnalazione (la pagina che si aprirà sarà fissa e importerà i dati della segnalazione scelta; non esiste una pagina per ogni segnalazione). La domanda è quindi la seguente: è possibile, in maniera semplice, far visionare a schermo la tabella con tutte le segnalazioni e fare in modo che ogni stringa della tabella sia un "tasto" che apra la suddetta pagina di modifiche? Sono un programmatore ancora abbastanza inesperto e volevo capire se fosse un operazione abbastanza semplice da fare e se nel caso poteste darmi qualche consiglio o postarmi un esempio.
Ho trovato questo script per poter visualizzare la tabella:
<table> 
<?php 
$db_connection= mysql_connect(DBSERVER,USERNAME,PASSWORD); 
$db_selection = mysql_select_db(DBNAME,$db_connection); 

$query = mysql_query("SELECT * FROM nometabella"); 
while($cicle=mysql_fetch_array($query)){ 
    echo "<tr><td>".$cicle['nomecampo']."</td></tr>"; 
} 
?> 
</table>
ma nient'altro per quanto riguarda il creare il "tasto" per ogni riga.
Anche creare un bottone accanto ad ogni riga andrebbe bene ma credo che quello sia ancora più complicato.
Vi ringrazio anticipatamente
Saluti a tutti

4 Risposte

  • Re: Creare una tabella interattiva da MySql

    In una parola : no.
    usando librerie già fatte : si
  • Re: Creare una tabella interattiva da MySql

    E' possibile ma devi utilizzare javascript (siccome PHP e' serverside)
    Prima di continuare ti vorrei consigliare di utilizzare mysqli (piu' semplice) o PDO(supporta piu' database) invece di mysql ormai depreached.

    PHP:
        <table class="table table-hover">
            <thead>
            <tr>
                <th>Colonna1</th>
                <th>Colonna1</th>
            </tr>
            </thead>
            <tbody>
            <?php
    $db = new mysqli(DBSERVER, USERNAME, PASSWORD, DATABASE);
    $query = $db->query("SELECT * FROM nometabella");
    
    
    if ($result->num_rows == 0) {
        echo "Nessun report presente";
    } else {
        while ($row = $result->fetch_array()) {
            echo '<tr>';
            echo '<th>' . $row["campo1"] . '</th>';
            echo '<th>' . $row["campo2"] . '</th>';
            echo '<th><i class="far fa-trash-alt"></i></th>'; //Icona presa da font-awesome, puoi metterci qualsiasi elemento al posto di <i></i>
            echo '</tr>';
        }
    }
    
    $result->close();
    $query->close();
            ?>
    
            </tbody>
        </table>


    JavaScript( + JQuery)
    
    
            $(document).on("click", ".fa-terminal",function(){
                const report = $(this).parent().siblings().eq(0).text();
    
    	    
                window.location.href = " "; //Metti qui il tuo url la variabile 'report' e' uguale al nome del report
            });
    
    
  • Re: Creare una tabella interattiva da MySql

    Se ho capito tu vuoi avere una pagina che elenca alcuni dati di sintesi prelevati dal db, e da questa poi accedere al dato dettagliato. nulla di piu facile.
    La tecnica di base prevede che gneeri due pagine una di elenco e una di dettaglio. In quella di elenco esegui una lettura del dbriga per riga e diciamo generi per ogni riga letta dal db una riga di tabella html con un ancora (link ad una pagina genmerica di dettaglio alal quale passi il parametro di indice del record).
    La pagina di dettaglio riceve il parametro di indirizzo e compone la nuova videata .
    la pagina di dettalgio la puoi aprire in diveri modi , dal modale alla nuova finestra.
    Il rientro dal dettaglio al elenco dipende da come hai aperto la pagina di dettaglio.
    Usare ajax non serve a meno che tu non voglia "giocare" con la grafica. Puoi anche creare due pagine correlate che si emettono in contmeporanea per cui allo scorrere del elenco presenti interattivamente il dettalgio, in quesot caso ajax serve .
    Ajax lo usi attraverso javascript . in sintesi realizzi un nodo dle DOM che si ripopola attraverso una domanda e risposta col server . js si attiva con lo scorrere dell elenco intercettando il movimento del cursore o altro.
    Se vupi rimanere all'esempio del bottone devi solo comporre il tag <a href>
    Ma esistono anche altri modi
  • Re: Creare una tabella interattiva da MySql

    Ciao, sul fatto che si possa fare ti hanno ampiamente risposto gli altri, non so quanto tempo hai per fare questa funzionalità e quanto sia grosso il tuo sistema ma dato che sei alle prime armi ti consiglio di imparare da subito un framework javascript per il lato client perchè andando avanti capirai che costruire le pagine in php in quel modo è molto limitativo, il php lo puoi tranquillamente usare lato backend... ti consiglio di guardarti Angular, può sembrare prematuro ma secondo me non lo è.
Devi accedere o registrarti per scrivere nel forum
4 risposte