Inserimento array proveniente da un modulo di registrazione con PHP e MySQL

  • Creatore Discussione Creatore Discussione Garaux
  • Data di inizio Data di inizio

Garaux

Utente Attivo
24 Feb 2013
50
0
0
Ciao, ho un problema nell'inserire dei dati provenienti da un modulo di registrazione nel database in formato array.

I dati nel modulo sono raggruppati nei checkbox dove l'utente puo' scegliere quante lingue preferisce.
I dati vengono inviati sotto forma di array. La variabile che contiene l'array si chiama $playerOtherLang

PHP:
foreach($playerOtherLang as $value) {
//INSERIMENTO DATI PLAYER
 $richiestaSQL = "INSERT INTO hb_player (playerName, playerLastName, playerAge, playerSex, playerCitizenship, playerResidence, playerMotherTongue, playerSecondLang)";

$richiestaSQL .="VALUES('$playerName', '$playerLastName', '$playerAge', '$playerGendre', '$playerCitizenship', '$playerResidence', '$playerFirstLang', '$value') ";
 

$dati = mysql_query($richiestaSQL);
}

Lo script summenzionato inserisce i dati dell'array, ma allo stesso tempo crea tanti id quante sono le lingue.

res_db.JPG

Io vorrei che le lingue venissero inserite nell'apposito campo denominato playerSecondLang corrispondente all'id creato.

Come posso fare? Grazie
 
la variabile value dei attribiti della sql é settata? Poi non ho capito come mai usi un ciclo per l'inserimento dei valori in un record tabella, secondo mè il ciclo non ti serve??? Ti continua a inserire gli stessi valori fino a quando il value e verificato... a occhio è così
 
Ultima modifica:
Ciao, si è settata.
Uso un ciclo perché il checkbox offre la possibilità di scegliere piu' lingue quindi imposto il valore con [].
Se nell'insert non imposto il ciclo nella tabella inserisce solo array.
 
Io utilizzerei il ciclo per caricare il vettore value e all'uscita del ciclo proverei passaglierla all'insert per la sql...
 
intendevo dirti una cosa così:

PHP:
<?php
$dato=1;
echo ("//primo ciclo <br/>");
foreach (array(1, 2, 3, 4) as $value) {
    $value = $value * 2;
	
	echo("dato=".$dato." ".$value."</br>") ;
}

foreach (array(1, 2, 3, 4) as $value) {
    $copia.= $value * 2;
	
}	

 echo ("secondo ciclo </br>") ;
	echo("dato=".$dato." ".$copia."</br>") ;


?>

se provi questo esempio vedi che c'è una differenza in quello che fanno i due cicli .... tu dovresti secondo me fare una cosa simile alla seconda dove i valori dell'array vengono concatenati in una variabile e all'uscita del ciclo il valore della variabile viene passato all'insert che nel mio caso è un echo... cosi i valori del tuo array vengono inseriti in un unico attributo nel record...
 
Ultima modifica:

Discussioni simili