Problema aggiornamento dati con foreach

  • Creatore Discussione Creatore Discussione newOne
  • Data di inizio Data di inizio

newOne

Utente Attivo
5 Feb 2014
30
0
0
Ciao, ho un piccolo problema con l'utilizzo della funzione foreach.


PHP:
$n_answers = $_POST['answers'];//Array contenente tutte le rispsote

foreach($n_answers as $value){
$answer = mysql_real_escape_string($value);
$update_answer =  mysql_query("UPDATE tbl_interview_answers SET answer = '$answer' WHERE playerID = $playerID");   
}

Lo script soprastante dovrebbe aggiornare i valori delle risposte all'interno della tabella tbl_interview_answers.
Quando invio la query l'aggiornamento viene effettuato, solo che tutte le risposte vengono sovrascritte con il valore iniziale della matrice: answer[0].
Perché non vengono aggiornati tutti i valori in base ai dati pervenuti attraverso $n_answers = $_POST['answers']?
Dove sto sbagliando?

Grazie
 
Ciao,
è logico che succeda questo: stai dicendo a php che, per ogni valore dell'array $n_answers, esegua la query
PHP:
UPDATE tbl_interview_answers SET answer = 'valore array' WHERE playerID = valorecostante

Per essere più chiaro: supponiamo che $n_answers sia così strutturato:
PHP:
array("valore0","valore1","valore2");

E che $playerID valga 2.

Php:
-Aggiornerà la tabella dove l'ID vale 2 modificando il campo "answer" con "valore0".
-Aggiornerà la tabella dove l'ID vale 2 modificando il campo "answer" con "valore1", conseguentemente sovrascriverà "valore0".
-Aggiornerà la tabella dove l'ID vale 2 modificando il campo "answer" con "valore2", conseguentemente sovrascriverà "valore1".
Al termine, nel database ti troverai con il campo aggiornato a "valore2".



Per risolvere, dovresti modificare $playerID per ogni valore dell'array in base alle tue necessità :)
 

Discussioni simili