estrarre il ciclo while in una sessione e spedire l'array in un db

amhal

Utente Attivo
17 Feb 2011
87
1
8
Ciao a tutti ho questo problema, creo una array che contiene i dati estratti in una pagina A con un ciclo while, spedisco l'array in una pagina B e cerco di inserire i dati in un db

posto il codice di quello che faccio.

questa è la pagina A che estrae i dati che devo mandare alla pagina B
PHP:
$query = "select * from carrello where id= '$var_id' ";
$result = mysql_query($query,$db) or die (mysql_error($db));

while($row = mysql_fetch_assoc($result)){
extract($row);	

$_SESSION['carrello'][] = array( 
								 
               'nome'=> $nome, 
	 'data' => $data, 
	 'ora' => $ora,
	 'cod'=> $cod );

}

questo è il codice della pagina B
PHP:
<?php
session_start();
@require('libreria/db_config.inc');	

$dati = $_SESSION['carrello'];

foreach($dati as $valori=>$key){
	
	
	foreach($key as $val=>$ke){
	$query = "insert ignore into tab($val) values ('$ke')";
	mysql_query($query,$db) or die(mysql_error($db));
	}
	
}

se faccio ciò inserisce i dati ma anche tanti campi vuoti, praticamente per ogni record pieno spedito ne inserisce uno vuoto per quante variabili $_SESSION['carrello'][] contiene..
dove sbaglio??
grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
se non ho capito male quello che vuoi fare
guarda qui come ho simulato
PHP:
<?php
session_start();
$_SESSION['carrello'][0] = array(                                
		'nome'=> 'pinco', 
		'data' => '06/09/2013', 
		'ora' => '15:30',
		'cod'=> '1111');
$_SESSION['carrello'][1] = array(                                
		'nome'=> 'pallo', 
		'data' => '09/06/2000', 
		'ora' => '24:15',
		'cod'=> '2222');
$_SESSION['carrello'][2] = array(                                
		'nome'=> 'sempronio', 
		'data' => '06/09/3000', 
		'ora' => '13:13',
		'cod'=> '3333');
foreach($_SESSION['carrello'] as $ch => $va){
	$v=array();
	foreach($va as $campo => $valore){
		$v[]="'".$valore."'";
	}
	$values=implode(",",$v);
	
	$query="INSERT INTO tab(nome,data,ora,cod) VALUES($values)";
	echo "$query<br />";
}
?>
e questo è l'output
INSERT INTO tab(nome,data,ora,cod) VALUES('pinco','06/09/2013','15:30','1111')
INSERT INTO tab(nome,data,ora,cod) VALUES('pallo','09/06/2000','24:15','2222')
INSERT INTO tab(nome,data,ora,cod) VALUES('sempronio','06/09/3000','13:13','3333')

poi, secondo me, modifica anche la parte della SELECT
PHP:
<?php
//....
$query = "select * from carrello where id= '$var_id' ";
$result = mysql_query($query,$db) or die (mysql_error($db));
while($row = mysql_fetch_assoc($result)){  
	$_SESSION['carrello'][] = array(                                
		'nome'=> $row['nome'], 
		'data' => $row['data'], 
		'ora' => $row['ora'],
		'cod'=> $row['cod'] );
}
//....
?>

e un consiglio: abbandona le istruzioni mysql sono deprecate e tra un po' non più funzionanti, passa a mysqli o alla classe PDO
 

amhal

Utente Attivo
17 Feb 2011
87
1
8
grazie tante per la soluzione.. seguirò il consiglio per mysqli :fonzie:
 
Discussioni simili
Autore Titolo Forum Risposte Data
A [PHP] metodo di una classe per estrarre i dati con ciclo while PHP 1
M problema con ciclo foreach per estrarre dati da un database PHP 22
M Estrarre valore con SELECT COUNT PHP 0
D Estrarre database con link esterno Database 10
S Raggruppare ed estrarre data più recente MySQL 3
F Estrarre ultima foto da cartelle PHP 2
R Estrarre valori duplicati più volte PHP 0
C Estrarre dati stringa Sql Database 1
L estrarre valori max tra più tabelle MySQL 2
L Estrarre da Cartella una determinata 'via' PHP 15
J estrarre url dei file video da youtube "get_video_info" PHP 6
M Estrarre valori MAX da un db con una left join MySQL 8
M Estrarre dati da una select HTML PHP 3
C [PHP] Estrarre da una classe i valori che mi interessano PHP 5
S [PHP] Estrarre dati da tabella e fare la media ad intervalli di tempo PHP 10
R [PHP] Estrarre id utente loggato.? PHP 4
S [PHP] Estrarre elementi array su più variabili PHP 5
S [PHP] Estrarre dati tabella in diversi array PHP 2
P [MS ACCESS] Estrarre più somme da una query MS Access 4
trattorino estrarre titolo video facebook in php PHP 0
D [WordPress] come fare per estrarre dati da un db MySQL tramite una form e visualizzare il risultato WordPress 0
S [Javascript] come estrarre valori array e inserirli in diverse variabili Javascript 1
N [PHP] Estrarre singolo valore da array PHP 4
trattorino [PHP] sql estrarre in base all'ultima visita PHP 4
P [Visual Basic] access sql estrarre id vendite x cli e articolo con data maggiore del recordset Visual Basic 2
Jensen [PHP] Estrarre prossimi 4 lunedì PHP 4
trattorino [PHP] estrarre dati singoli PHP 1
G [PHP] estrarre data da timeline yyyy-dd-gg hh:mm:ss PHP 4
Z Estrarre dati da un DB Mysql PHP 4
I database mysql estrarre due tabelle Database 2
S [PHP] Estrarre dati colonna in una stringa PHP 6
S [PHP] estrarre dati sito web protetto con username e password PHP 13
Merlina3377 [PHP] estrarre solo un determinato id da tanti con REGEXP O LIKE PHP 1
Gigi87 estrarre i dati da un forum o social network Presentati al Forum 1
trattorino Estrarre Nome Utente jquery div php PHP 9
trattorino [Javascript] estrarre id link yt Javascript 1
S [PHP] estrarre le email da un elenco di url PHP 21
T4MAR4 [PHP] estrarre tag da un testo PHP 3
T [PHP] Estrarre stringa PHP 3
G [PHP] ESTRARRE DA DB VALORE MASSIMO E MINIMO IN UN INTERVALLO IMPOSTABILE A PIACERE PHP 56
bubino8 [PHP] Estrarre dominio No Sottodomini PHP 10
L [PHP] Estrarre dati da sito web Offerte e Richieste di Lavoro e/o Collaborazione 4
sandropochi [PHP] Query per estrarre record con data successiva a quella odierna PHP 2
gandalf1959 Estrarre da un db mysql le mail, eliminando le doppie PHP 6
giancadeejay [PHP] Estrarre solo record dell'utente connesso PHP 4
U [PHP] estrarre i risultati di una query e visualizzarli in una tabella. PHP 9
S [PHP] estrarre numero da stringa PHP 5
giuseppe_123 [PHP] Estrarre giorno mese e anno da una data PHP 2
giancadeejay estrarre record specifico da db Database 17
webmachine [JS] Estrarre immagine da link jQuery 8

Discussioni simili