Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    10

    Variabili di sessione con foreach e mysql

    Ciao a tutti
    Ho una domanda probabilmente molto semplice e da inesperti, ma sono settimane che ci sbatto la testa non poco.
    Allora...
    Io ho questo pezzo di codice:

    Codice PHP:
    $result_p dbquery("SELECT * FROM risorse WHERE matricola_ris = $name");
    $row_p dbarray($result_p);

            
    $_SESSION["nome_ris"] = $row_p["nome_ris"];
            
    $_SESSION["id_ris"] = $row_p["id_ris"];
            
    $_SESSION["cognome_ris"] = $row_p["cognome_ris"];
            
    $_SESSION["matricola_ris"] = $row_p["matricola_ris"];
            
    $_SESSION["livello_ris"] = $row_p["livello_ris"]; 
    Quel che vorrei, è evitare di scrivere tutto ciò:

    Codice PHP:

            $_SESSION
    ["nome_ris"] = $row_p["nome_ris"];
            
    $_SESSION["id_ris"] = $row_p["id_ris"];
            
    $_SESSION["cognome_ris"] = $row_p["cognome_ris"];
            
    $_SESSION["matricola_ris"] = $row_p["matricola_ris"];
            
    $_SESSION["livello_ris"] = $row_p["livello_ris"]; 
    ...e far sì che con un foreach, l'array risultante dalla select al db restituisca in automatico le variabili di sessione.

    Una cosa del genere l'ho già provata ma non funge:

    Codice PHP:
    $result_p dbquery("SELECT * FROM risorse WHERE matricola_ris = $name");

    if (
    $row_p dbarray($result_p)) {

        foreach(
    $row_p as $key => $row)

            
    $_SESSION["$key"] = "$row";

            } 
    Qualche consiglio?
    Grazissime in anticipo!

  2. #2
    hai provato senza doppi apici?

    Codice PHP:
    foreach($row_p as $var => $val)   $_SESSION[$var] = $val

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    10
    Provato ora ora...
    E funziona!!!

    Mamma mia, mi perdo davvero nei bicchieri d'acqua.

    Grazie mille!

    EDIT

    Come non detto!
    Non funge.
    Era salvata la sessione vecchia .
    Sono punto e a capo

  4. #4
    Se non funziona è perchè l'array $row_p non è riempito a dovere oppure resetti la sessione in qualche modo, dbarray() corrisponde a mysql_fetch_assoc?

    Questo codice cosa ti stampa?
    Codice PHP:
    $result_p dbquery("SELECT * FROM risorse WHERE matricola_ris = $name");
    $row_p dbarray($result_p);

    print 
    "<h1>Array DB</h1><pre>";
    print_r($row_p);
    print 
    "</pre>---------------------------------";
    print 
    "<h1>Array SESSIONE</h1><pre>";
    foreach(
    $row_p as $var => $val)   $_SESSION[$var] = $val;
    print_r($_SESSION);
    print 
    "</pre>---------------------------------"

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    10
    Mi stampa questo:

    Array DB
    Array
    (
    [0] => 2
    [id_ris] => 2
    [1] => *nome corretto*
    [nome_ris] => *nome corretto*
    [2] => *cognome corretto*
    [cognome_ris] => *cognome corretto*
    [3] => *matricola corretta*
    [matricola_ris] => *matricola corretta*
    [4] => Web
    [ruolo_ris] => Web
    [5] => *tel corretto*
    [tel_ris] => *tel corretto*
    [6] => *email corretta*
    [email_ris] => *email corretta*
    [7] => Torino
    [sede_ris] => Torino
    [8] => 1
    [livello_ris] => 1
    )

    ---------------------------------
    Array SESSIONE
    Array
    (
    [nome] => *matricola corretta*
    [nome_ris] => *nome corretto*
    [id_ris] => 2
    [cognome_ris] => *cognome corretto*
    [matricola_ris] => *matricola corretta*
    [livello_ris] => 1
    [0] => 2
    [1] => *nome corretto*
    [2] => *cognome corretto*
    [3] => *matricola corretta*
    [4] => Web
    [ruolo_ris] => Web
    [5] => *tel corretto*
    [tel_ris] => *tel corretto*
    [6] => *email corretta*
    [email_ris] => *email corretta*
    [7] => Torino
    [sede_ris] => Torino
    [8] => 1
    )

    Chiedo scusa se non ho messo i dati reali, ma purtroppo non sono dati miei. Comunque i valori erano tutti corretti, come ho scritto, e corrispondevano a quelli in db.

    Qui c'è la funzione che definisce dbarray:

    Codice PHP:
    function dbarray($query) {
        
    $result mysql_fetch_array($query);
        if (!
    $result) {
            echo 
    mysql_error();
            return 
    false;
        } else {
            return 
    $result;
        }


  6. #6
    Intanto ti consiglio di utilizzare mysql_fetch_assoc invece di mysql_fetch_array.

    Tornando all'array di sessione sembra sia valorizzato correttamente no? Perchè dici che non funziona?

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    10
    Perchè se definisco a mano le variabili di sessione, le pagine successive le riconoscono.
    Se le lascio definire al foreach, risultano vuote.
    Ora provo con mysql_fetch_assoc

    Niente, riedito.
    Stesso scherzetto di prima. La sessione ci ha messo un po' a cancellarsi.
    Quindi ancora nada

  8. #8
    A me visto l'output sembrava andare anche prima, vabbè l'importante è che funzioni

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    10
    Eh leggi su

    Ho paura sia questione di doppi apici.
    Ora provo...

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    10
    Sembra che togliendo i doppi apici vada aposto .
    Me ne sono accorta guardando le variabili di sessione che mi ha fatto stampare cubalibre.
    Grazie! (sperando di non tornare con l'ennesima smentita!)


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