Insert da ciclo for

  • Creatore Discussione Creatore Discussione amhal
  • Data di inizio Data di inizio

amhal

Utente Attivo
17 Feb 2011
89
1
8
Ciao a tutti, ho una variabile $_POST con 40 valori, vorrei inserire i primi 13 in un db, ho scritto questo codice:
PHP:
unset($_POST['submit']); //elimino dall'array $_POST il name del submit
					
			foreach($_POST as $var => $key){	//Ciclo i dati e divido chiave da valore				
				$upper = strtoupper($key);	//tutto maiuscolo
				$maiusc = mysql_real_escape_string($upper); //escape delle stringhe
				$v[] = "'".$maiusc."'"; //metto tutto in una array con gli apici che serviranno per la insert				
			}
				$values=implode(",",$v); //aggiungo ai valori oltre agli apici anche la virgola sempre per la insert
				

                                for($i=0; $i<=13; $i++) {  //faccio un ciclo for e conto i primi 13 elementi dell array				
				
                                $var = $values[$i];
				
				}

				$query = " INSERT INTO clienti(rag_soc,p_iva,cf,via,n,citta,cap,prov,tel,cell,fax,email,tempo_cons,internet)
							VALUES($var) ";
					mysql_query($query,$db) or die (mysql_error($db));

l'errore che ricevo è: Column count doesn't match value count at row 1
se non ho tradotto male, non corrispondono le colonne con il numero dei dati da inserire, ma li ho controllati e sono giusti!!

dove sbaglio? grazie a tutti
 
Ultima modifica di un moderatore:
rag_soc,p_iva,cf,via,n,citta,cap,prov,tel,cell,fax,email,tempo_cons,internet
Io ne conto 14
In ogni caso $var prenderà il valore dell'ultima iterazione
PHP:
$var = $values[$i];
 
ciao
scusate, ma c'è qualcosa che non mi torna
ora ottengo l'array $v
faccio l'implode con tutti gli ammenicoli vari
PHP:
$values=implode(",",$v);
$values diventa un variabile stringa es "'pinco','pallo', ecc..." non un array
ora
quando faccio il ciclo da 0 a 12
$values[0] conterra un apice
$values[1] conterra il primo p
$values[2] conterra i ecc...

ma forse sbaglio
 

Discussioni simili