Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di puja
    Registrato dal
    May 2013
    Messaggi
    46

    Trasformare il risultato di una query MySql in variabile di sessione

    Buon pomeriggio a tutti,

    ho sempre messo da parte questo problema che ancora oggi non riesco a risolvere.

    Ponendo una query del tipo:

    Codice PHP:
    $query "SELECT `id` FROM `".$_CONFIG['tabella_utenti']."` WHERE Nome = 'pippo' ";
    for(
    $x=0$x<$numrows$x++){
           
    $resrow mysql_fetch_row($result);
        
    $Gianfilippo $resrow[0];
        } 
    Come posso utilizzare la variabile $Gianfilippo in sessione?

    se faccio

    Codice PHP:
    <?php
    session_start
    ();   
    $variabile$Gianfilippo;
    $_SESSION['var'] = $variabile;
    Non funziona

    Dove sbaglio?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Ma va di moda usare cicli for e contatori per ciclare sui risultati di una query?
    Sul risultato si cicla così
    Codice PHP:
    while ( $row mysql_fetch_array($result) )
    {
        
    $Gianfilippo $row[0];
        
    //anche se questa assegnazione ha poco senso, perché ad ogni ciclo
        //la variabile viene sovrascritta e alla fine conterrà solo l'ultimo valore

    Comunque
    Codice PHP:
     <?php
    session_start
    ();   

    //$Gianfilippo è definita all'interno di questo script?
    //se ce l'hai in un altro è ovvio che non funzioni
    $variabile$Gianfilippo;
    $_SESSION['var'] = $variabile;

  3. #3
    Utente di HTML.it L'avatar di puja
    Registrato dal
    May 2013
    Messaggi
    46
    ecco il punto: non saprei come definirla.

    Se arrivasse da un form mi basterebbe un POST; ma così? Come faccio?


    P.S. Sisi, mi rendo conto che così ha poco senso.. Ho usato valori fittizzi

    immagino
    Codice PHP:
    $Gianfilippo $row[0
    non funzioni..

    O meglio: ho provato e non funziona.

    Credo mi sfugga una parte del concetto "definire una variabile"

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Dentro la variabile di sessione alla fine cosa ci vuoi? Tutti i valori recuperati dalla query?

  5. #5
    Utente di HTML.it L'avatar di puja
    Registrato dal
    May 2013
    Messaggi
    46
    Alla fine mi servirebbe il dato di un unico campo che, se non sbaglio, è il risultato della query.

    Potrebbe anche essere, ad esempio l'indice.

  6. #6
    Utente di HTML.it L'avatar di puja
    Registrato dal
    May 2013
    Messaggi
    46
    vabbè, probabilmente mi spiego male. Troverò un sistema. Grazie lo stesso.

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    In realtà sì, ti spieghi male, perché parli di un singolo campo e nel codice assegni il valore di tale campo ad una variabile all'interno di un ciclo sovrascrivendola ogni volta... a che serve? Alla fine avrai solo l'ultimo valore, di tutti quelli prima cosa te ne sei fatto se vanno persi?
    Tu li vuoi mantenere tutti?
    Alla fine dentro a $Gianfilippo cosa ci deve essere? Tutti gli id trovati?
    In tal caso $Gianfilippo deve essere un array, non una variabile semplice.

  8. #8
    Utente di HTML.it L'avatar di puja
    Registrato dal
    May 2013
    Messaggi
    46
    Originariamente inviato da Alhazred
    In realtà sì, ti spieghi male, perché parli di un singolo campo e nel codice assegni il valore di tale campo ad una variabile all'interno di un ciclo sovrascrivendola ogni volta... a che serve?
    mm provo a spiegarmi meglio includendo il codice completo (dove $Gianfilippo è il Cliente_Id)
    Non sono molto bravo con i codici ed è probabile che includa delle funzioni inutili o sbagliate.


    Codice PHP:
    //Imposto ed eseguo la query che mi serve a trovare l'indice univoco dell'utente
    $query "SELECT `Cliente_Id` FROM `".$_CONFIG['table_utenti']."` WHERE Cliente_Username = '$variabile_di_sessione'"//la variabile di sessione è lo username prelevato dal login tramite metodo post  

    $result mysql_query($query$link) or die ('Errore');

    //conto il numero di occorrenze trovate nel db
    $numrows mysql_num_rows($result);

    //se il database è vuoto lo stampo a video
    if ($numrows==0){
      echo 
    "Database vuoto!";
    }
    //Se invece trovo delle occorrenze...
    else
    {
    while ( 
    $row mysql_fetch_array($result) ) 

        
    $Cliente_Id $row[0]; 

        
        
    //Stampo il risultato che sarà un numero (Ad.Es. 11)
     
    echo "nome: [b]" $Cliente_Id "[/b]
    "
    ;

    Alla fine avrai solo l'ultimo valore, di tutti quelli prima cosa te ne sei fatto se vanno persi?
    Tu li vuoi mantenere tutti?
    Al momento mi è poco chiaro perché dici che trovo tanti valori. in tutti i casi a me ne serve solo uno.


    Alla fine dentro a $Gianfilippo cosa ci deve essere? Tutti gli id trovati?
    In tal caso $Gianfilippo deve essere un array, non una variabile semplice.
    Da quanto mi risulta, facendo
    Codice PHP:
     echo "nome: [b]" $Cliente_Id "[/b]
    "

    viene stampato un solo valore che è proprio il numero che vorrei portare in sessione con $Gianfilippo o $Cliente_Id.

    mi rendo conto che quanto ho appena scritto può essere la disperazione di un bravo programmatore ma purtroppo al momento, non dispongo di tutti gli strumenti necessari per rendere la spiegazione più chiara

    grazie per lo sforzo e l'aiuto! Spero un giorno di diventare abbastanza bravo da iniziare ad aiutare gli altri

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Originariamente inviato da puja
    Al momento mi è poco chiaro perché dici che trovo tanti valori. in tutti i casi a me ne serve solo uno.
    Perché da come avevi scritto la query la prima volta, questa poteva generare più risultati visto che ci possono essere più persone con Nome='Pippo', mentre ora parli di username, il che cambia le cose, l'username dovrebbe essere univoco e la query restituire un solo risultato.

    Alla luce di questo non ti serve neanche il while, che serve solo se c'è da ciclare su più risultati e non è il tuo caso.

    Il tuo codice dovrebbe essere così

    Codice PHP:
    $query "SELECT `Cliente_Id` FROM `".$_CONFIG['table_utenti']."` WHERE Cliente_Username = '$variabile_di_sessione'";

    $result mysql_query($query$link) or die ('Errore');

    if ( 
    mysql_num_rows($result) == )
    {
        echo 
    "Username non trovato!";
    }
    //Se invece trovo delle occorrenze...
    else
    {
        
    $result mysql_fetch_array($result);
        
        
    //stampa l'id sulla pagina
        
    echo "nome: [b]" $result[0] . "[/b]
    "
    ;
        
        
    //mette l'id in sessione
        
    $_SESSION['Cliente_Id'] = $result[0];


  10. #10
    Utente di HTML.it L'avatar di puja
    Registrato dal
    May 2013
    Messaggi
    46
    Mi viene da piangere! Mi hai appena fornito l'ultimo tassello di una cosa che mi teneva occupato da un po'! GRAZIE!

    Dimmi il nome di un bar dove lasciarti una bibita pagata!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.