Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    select WHERE nome utente

    Ciao a tutti
    sto tentando di fare una query su una tabella dove ho registrato nel campo 'utente' il valore che mi interessa. Nella pagina PHP ho il valore della sessione correttamente registrato nella variabile $nomeutente.
    Vorrei che la funzione 'display_db_table' filtrasse solo le righe dove i due valori corrispondono, in pratica $nomeutente = utente.

    codice:
    <?php session_start(); 
    $nomeutente = $_SESSION['nomeutente'];
    
    .....
    
    function display_db_table($tablename, $connection, $header_bool, $table_params) {
    
    	$query_string = "SELECT * FROM $tablename WHERE". $nomeutente." '= {$_GET['utente']}'" ;
    	display_db_query($query_string, $connection,
    	$header_bool, $table_params);
    }
    ?>
    se non metto la clausola WHERE funziona, visualizzo tutti i dati nella tabella, invece così come ho scritto la SELECT non funziona, vedo le intestazioni della tabella (creata da altra funzione) ma sembra che non vi siano dati associati all'utente registrato nella sessione; i dati invece ci sono nel DB.
    Qualcuno potrebbe gentilmente dirmi cosa ho sbagliato????
    grazie
    RM

  2. #2
    io metterei intanto uno spazio dopo il WHERE
    inoltre $nomeutente lo popoli FUORI dalla funzione quindi il suo scope viene perso
    prova a metterlo dentro o passarlo alla funzione display_db_table


    Codice PHP:
    <?php session_start(); 

    .....

    function 
    display_db_table($tablename$connection$header_bool$table_params) {
    $nomeutente $_SESSION['nomeutente'];

        
    $query_string "SELECT * FROM $tablename WHERE "$nomeutente." '= {$_GET['utente']}'" ;
        
    display_db_query($query_string$connection,
        
    $header_bool$table_params);
    }
    ?>
    Google Partner | Senior Developer
    Guida su Google Tag Manager

  3. #3
    grazie, fatto ma genera un errore, il codice che ho scritto è :

    codice:
    <?php session_start(); 
    $nomeutente = $_SESSION['nomeutente'];
    
    ....
    
    function display_db_table($tablename, $connection, $header_bool, $table_params, $nomeutente) {
    
    	$query_string = "SELECT * FROM $tablename WHERE ". $nomeutente." '= {$_GET['utente']}'" ;
    	display_db_query($query_string, $connection,
    	$header_bool, $table_params);
    }
    ?>
    <HTML><HEAD><TITLE>Displaying a MySQL table</TITLE></HEAD>
    <BODY>
    <TABLE><TR><TD>
    <?php
    $table = "student";
    
    display_db_table($table, $global_dbh,TRUE, "border='2'", $nomeutente);
    ?>
    </TD></TR></TABLE></BODY></HTML>
    l'errore generato é:

    server version for the right syntax to use near ''= ''
    grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    98
    Codice PHP:
    $nomeutente $_SESSION['nomeutente'];

        
    $query_string "SELECT * FROM $tablename WHERE "$nomeutente." '= {$_GET['utente']}'" ;
        
    display_db_query($query_string$connection,
        
    $header_bool$table_params); 

    in pratica con quella select non cerchi nulla, anche perché è errata nella sintassi. Vuoi confrontare due variabili, $nomeutente e $_GET... e non dichiari il campo su cui fare la ricerca.

    Come è fatta la tabella e su quali campi vuoi impostare la ricerca?

  5. #5
    Esatto fai un echo di $query_string e capirai che è la query errata
    Google Partner | Senior Developer
    Guida su Google Tag Manager

  6. #6
    OK, anzitutto grazie per l'aiuto.
    Ho corretto la query ed il risultato cambia, ma rimane non corretto.... (sarà la stanchezza
    ....)
    Query:

    codice:
    	$query_string = "SELECT * FROM $tablename WHERE 'utente' = '". $nomeutente."'" ;
    risultato:

    echo: SELECT * FROM student WHERE 'utente' = 'prova'
    table header: id name class utente
    query eseguita in MySQL:

    codice:
    SELECT * 
    FROM  `student` 
    WHERE  `utente` =  'prova'
    risultato:
    id name class utente
    5454 pippo I prova
    essenzialmente se eseguito in PHP mi restituisce la tabella vuota.
    grazie ancora
    RM

  7. #7
    Usa la stringa così

    codice:
    $query_string = "SELECT * FROM ".$tablename." WHERE (utente = '". $nomeutente."')";
    Google Partner | Senior Developer
    Guida su Google Tag Manager

  8. #8
    perfetto, funziona... grazie 1000

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.