Creazione variabili di sessione

  • Creatore Discussione Creatore Discussione Agata_
  • Data di inizio Data di inizio

Agata_

Nuovo Utente
3 Apr 2008
3
0
0
Ciao a tutti!
Complimentissimi per il forum e il sito. Sono a dir poco utilissimi!
Parto dicendo che non sono affatto esperta, quindi abbiate pazienza...

Vi faccio una domanda magari stupida.

Guardate questo codice

Codice:
$result_p = dbquery("SELECT * FROM persone WHERE matricola_ris = '$mat_auth'");
if ($row_p = dbarray($result_p)) {

	session_start();

	$_SESSION["nome_ris"] = $row_p["nome_ris"];
	$_SESSION["cognome_ris"] = $row_p["cognome_ris"];

//....ecc ecc 
}

Prima di tutto: qualsiasi consiglio per l'ottimizzazione è ben accetto.
La domanda comunque è: come posso fare per far sì che le variabili di sessione si "autocreino" dai campi selezionati dal db?
Come vedete è un po' assurdo, riscriverle tutte quando sicuramente con un ciclo, posso dirgli di scrivere:

$_SESSION["nome_campo"] = valore_campo;

per tutte le variabili (ovvero tutti i campi)

Grazie millissime!! E' più importante, per me, capire il concetto che altro ;)
 
Ultima modifica:
Mi sono spaccata un po' la testa, ma alla fine non era difficile. Questa è la soluzione:

Codice:
$result_p = dbquery("SELECT * FROM risorse WHERE matricola_ris = '$mat_auth'");
if ($row_p = dbarray($result_p)) {

	session_start();

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

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

		$conto = count($row_p);

		}

echo $conto;
		}

Ovviamente ho un'altra domanda.
La variabile $conto deve restituire come valore 8, invece restituisce 16. PERCHE'???????:crying:
 
Sposta l'uguaglianza al di fuori del ciclo:
PHP:
$result_p = dbquery("SELECT * FROM risorse WHERE matricola_ris = '$mat_auth'");
if ($row_p = dbarray($result_p)) {

	session_start();

	foreach($row_p as $key => $row) {
		$_SESSION["$key"] = $row;
		}

echo $conto = count($row_p);
		}
e vedi se il risultato è lo stesso
 
Fatto.
Purtroppo sì, mi restituisce sempre il conteggio raddoppiato.
Non riesco proprio a capire perchè...
Ovviamente c'è una "matricola_ris" diversa per ogni recordset della tabella risorse. E la tabella risorse è composta da 8 colonne...
 

Discussioni simili