Visualizzazione risultati 1 fino 5 di 5

Discussione: Visualizzare contenuto database a seconda della scelta dell'utente

  1. #1
    Data registrazione
    05-11-2015
    Messaggi
    9

    Predefinito Visualizzare contenuto database a seconda della scelta dell'utente

    Salve a tutti, e' la prima volta che scrivo, sto facendo un sito web per il mio datore di lavoro ho bisogno di un grosso aiuto da parte vostra.
    Ho un database "operatori" con una tabella "NOMI_OPERATORI" in cui all'interno ho le seguenti colonne:
    ID, MATRICOLA, AGENT_ID , COGNOME, NOME, RECAPITO, CODFISCALE, SKILL, GRUPPO_PWK, GRUPPO, MODULO, NOTE.
    La mia home page ha un campo di ricerca
    <FORM ACTION="pannello.php" method="POST">
    Cerca Operatore per cognome: <input type="text" size="20" name="cognome"/>
    <button type="submit">Ricerca</button></span>
    <select>
    <option value="cognome" selected>Cognome</option>
    <option value="nome">Nome</option>
    <option value="acc">ACC</option>
    <option value="matricola">Matricola</option>
    </select>

    Il mio datore di lavoro a seconda di cio' che sceglie in un'altra pagina "pannello.php" dovra' visualizzare le informazioni dell'utente.

    Pagina pannello.php:

    <?php
    $host="localhost";
    $username="root";
    $password="";
    $db_name="operatori";
    $tbl_name="nomi_operatori";
    $db =mysqli_connect($host,$username,$password,$db_name );

    $cognome = $_POST['cognome'];
    $sql=mysqli_query($db, "SELECT MATRICOLA, AGENT_ID, COGNOME, NOME, RECAPITO, CODFISCALE, SKILL, GRUPPO_PWK, GRUPPO, MODULO, NOTE FROM `nomi_operatori` WHERE COGNOME='$cognome'");

    while($cicle=mysqli_fetch_array($sql)){
    echo "<br>";
    echo "<br>";
    echo "<br>";
    echo "<br>";
    echo "<table border='1'>";
    echo "<tr>";
    echo "<td>".$cicle['MATRICOLA']."</td>";
    echo "<td>".$cicle['AGENT_ID']."</td>";
    echo "<td>".$cicle['COGNOME']."</td>";
    echo "<td>".$cicle['NOME']."</td>";
    echo "<td>".$cicle['RECAPITO']."</td>";
    echo "<td>".$cicle['CODFISCALE']."</td>";
    echo "<td>".$cicle['SKILL']."</td>";
    echo "<td>".$cicle['GRUPPO_PWK']."</td>";
    echo "<td>".$cicle['GRUPPO']."</td>";
    echo "<td>".$cicle['MODULO']."</td>";
    echo "<td>".$cicle['NOTE']."</td>";
    echo "</tr>";
    echo "</table>";
    }

    ?>
    il problema e' che solo tramite "cognome" riesco a cercare, come faccio a far capire al sito che voglio cercare tramite "nome" selezionandolo dal menu a tendina?
    Grazie per l'aiuto, e' molto importante per favore.

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,323

    Predefinito

    Il form che hai mostrato ha la possibilità di inviarti due dati:
    • cognome che contiene il testo della ricerca (nome inappropriato, avrebbe più senso chiamarlo query o qualcosa del genere, dato che la ricerca non è necessariamente per cognome)
    • il valore della select che indica su quale campo cercare (devi prima assegnare un nome a quella select, ad esempio campo)


    In pannello.php ti basta controllare questo secondo valore ed utilizzarlo per costruire la query. Qualcosa come:
    Codice PHP:
    $q $_POST['cognome'];
    $field $_POST['campo'];

    $query "SELECT MATRICOLA, AGENT_ID, COGNOME, NOME, RECAPITO, CODFISCALE, SKILL, GRUPPO_PWK, GRUPPO, MODULO, NOTE FROM nomi_operatori WHERE $campo = '$q'";
    $sql mysqli_query($db$query); 
    PS: Dovresti rivedere la scelta dei nomi di alcuni identificatori. Ad esempio chiamare una tabella NOMI_OPERATORI suggerisce che essa contenga solo i nomi degli operatori, mentre invece ne contiene tutti i dati. Una tabella siffatta dovrebbe chiamarsi operatore o operatori. Oppure quello che, nel codice, chiami $cicle non è un ciclo come il nome suggerirebbe, bensì un record o riga.

    I suggerimenti che do più spesso:
    • Le funzioni mysql_* sono deprecate. Usa PDO o MySQLi.
    • Non memorizzare le password in chiaro nella base di dati. Usa password_hash().
    • Indenta correttamente il codice e usa nomi significativi per gli identificatori.


  3. #3
    Data registrazione
    05-11-2015
    Messaggi
    9

    Predefinito

    Non puoi immaginare quanto sei stato gentile, sono riscito a risolvere, grazie mille davvero. (eh si ricontrollero' i nomi delle mie variabili)

  4. #4
    love4music non è connesso Utente AlterBlog
    Data registrazione
    23-12-2018
    Messaggi
    20

    Predefinito

    Salve facendo una ricerca ho trovato questo post che penso sia al mio caso, sto facendo un sito di archivio di brani karaoke, ho caricato nel database mysql 4 tabelle che sono l'archivio dei brani karaoke.
    Una tabella chiamata archiviosingoli con questi campi ID, Autore, Titolo, Formato, Sincro, Data
    Ho pensato di usare questi proposti sopra. Ho fatto secondo me le modifiche necessarie per le mie esigenze. Ma non funziona. Non so se ho fatto bene o male, vorrei fare lo stesso con le altre tabelle anzi se ci fosse la possibilità di avere modo di selezionare la tabella e poi fare la ricerca del brano o artista sarebbe meglio.
    Vorrei capire dove ho sbagliato grazie

    Faccio una ricerca nel form metto esempio Lucio Battisti e poi nella pagina mi spunta
    No Results Found

    The page you requested could not be found. Try refining your search, or use the navigation above to locate the post.

    Uso Wordpress, sono andato nella cartella del template e ho copiato il file php single.php ed ho aggiunto la form in qesto modo:
    <?php get_header(); ?>

    <div id="content-area">
    <div class="container clearfix">
    <div id="main-area">
    /*
    Template Name: Form
    */
    <?php while ( have_posts() ) : the_post(); ?>
    <?php if (et_get_option('vertex_integration_single_top') <> '' && et_get_option('vertex_integrate_singletop_enable') == 'on') echo(et_get_option('vertex_integration_single_top' )); ?>

    <article class="entry clearfix">
    <?php
    the_content();

    wp_link_pages( array( 'before' => '<div class="page-links">' . __( 'Pages:', 'Vertex' ), 'after' => '</div>' ) );
    ?>
    <FORM ACTION="pannello.php" method="POST">
    Cerca Autori: <input type="text" size="20" name="Autori"/>
    <button type="submit">Ricerca</button></span>
    <select>
    <option value="Autori" selected>Autori</option>
    <option value="Titolo_e_note">Titolo_e_note</option>
    <option value="Formato">Formato</option>
    <option value="Sincro">Sincro</option>
    </select>
    <?php
    if ( et_get_option('vertex_468_enable') == 'on' ){
    if ( et_get_option('vertex_468_adsense') <> '' ) echo( et_get_option('vertex_468_adsense') );
    else { ?>
    <a href="<?php echo esc_url(et_get_option('vertex_468_url')); ?>"><img src="<?php echo esc_attr(et_get_option('vertex_468_image')); ?>" alt="468 ad" class="foursixeight" /></a>
    <?php }
    }
    ?>
    </article> <!-- .entry -->

    <?php if (et_get_option('vertex_integration_single_bottom') <> '' && et_get_option('vertex_integrate_singlebottom_enabl e') == 'on') echo(et_get_option('vertex_integration_single_bott om')); ?>

    <?php
    if ( comments_open() && 'on' == et_get_option( 'vertex_show_postcomments', 'on' ) )
    comments_template( '', true );
    ?>
    <?php endwhile; ?>

    </div> <!-- #main-area -->

    <?php get_sidebar(); ?>
    </div> <!-- .container -->
    </div> <!-- #content-area -->

    <?php get_footer(); ?>

    poi ho fatto un file nuovo php chchiamato pagina pannello con dentro questo:
    <?php
    $host="localhost";
    $username="love4music";
    $password="la mia password";
    $db_name="my_love4music";
    $tbl_name="archiviosingoli";
    $db =mysqli_connect($host,$username,$password,$db_name );

    $q = $_POST['Autori'];
    $field = $_POST['campo'];

    $query = "SELECT ID, Autori, Titolo_e_note, Formato, Formato, Sincro, Data, FROM archiviosingoli WHERE $campo = '$q'";
    $sql = mysqli_query($db, $query);

    while($cicle=mysqli_fetch_array($sql)){
    echo "<br>";
    echo "<br>";
    echo "<br>";
    echo "<br>";
    echo "<table border='1'>";
    echo "<tr>";
    echo "<td>".$cicle['ID']."</td>";
    echo "<td>".$cicle['Autori']."</td>";
    echo "<td>".$cicle['Titolo_e_note']."</td>";
    echo "<td>".$cicle['Formato']."</td>";
    echo "<td>".$cicle['Sincro']."</td>";
    echo "<td>".$cicle['Data']."</td>";
    echo "</tr>";
    echo "</table>";
    }

    ?>
    Ultima modifica di love4music : 11-01-2019 alle ore 20.14.40

  5. #5
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,323

    Predefinito

    The page you requested could not be found. Try refining your search, or use the navigation above to locate the post.
    Più che un problema di database sembra un errore 404...
    Il codice che avevo mostrato a suo tempo è pensato per essere eseguito così com'è al di fuori di qualsiasi contesto, mentre tu stai lavorando all'interno di WordPress: non so se questo abbia qualche rilevanza, non conosco WordPress e non so se modificare direttamente i file del template sia il modo corretto di procedere. Dovresti provare nella sezione dedicata a WordPress.

    I suggerimenti che do più spesso:
    • Le funzioni mysql_* sono deprecate. Usa PDO o MySQLi.
    • Non memorizzare le password in chiaro nella base di dati. Usa password_hash().
    • Indenta correttamente il codice e usa nomi significativi per gli identificatori.


Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •