Query su input dinamico

Ciao a tutti :) spero possiate aiutarmi..

Allora.. ho un form con un pulsante che ad ogni click aggiunge ulteriori input. Ora dovrei inviare i dati che vengono immessi in questi input in una tabella mysql.. tanto per farvi capire:

                |   input1   |   input2    |   input3      ...      |   input10    |

->

   |      id   |   gioco1   |   gioco2   |   gioco3      ...      |   gioco10   |

Parte html

<head>
<script language="javascript">
fields = 0;
function addInput() {
if (fields != 10) {
document.getElementById('text').innerHTML += "<input type='input' value='' name='field[]' /><br />";
fields += 1;
} else {
document.getElementById('text').innerHTML += "<br />Only 10 upload fields allowed.";
document.form.add.disabled=true;
}
}
</script>
</head>
<body>
<form name="form" action="form.php" method="post">
<input type="button" onclick="addInput()" name="add" value="Add input field" />

<div id="text">

</div>

<br />
<input type="submit" value="Submit" />
</form>
</body>

Script relativo al form

<?php
include('mysql.php');
$i = 0;
foreach($_POST['field'] as $value) {
$i++;
$gioco = $value;
   $query = "INSERT INTO clan (gioco".$i.") VALUES ('$gioco')";
   $result = @mysql_query($query);
}
?>

Sembra funzionare, ma invece di aggiungere tutti i dati sulla stessa riga della tabella mysql, fa una query per ogni input e quindi risulta inserito 1 solo campo per ID (gioco1,2 e 3 in successione).. lo so che è normale, essendo un foreach, solo che non mi viene in mente nessun altro metodo  :-\

inviato 8 anni fa
bonecrusher
X 0 X

ehm, non ho ben capito: vorresti fare un'unica insert per n giochi inseriti dall'utente?

se è come ho capito, potresti operare in questo modo (sperando abbia compreso ciò che ti serve):

<?php
   //ciclo per montare colonne e rispettivi valori
   foreach($_POST['field'] as $i => $gioco) {
      $temp[0]="'gioco". $i. "'";
      $temp[1]="'". $gioco. "'";
      if ($count($_POST['field'])-1>$i) {
         $temp[0].=",";
         $temp[1].=",";
      }
   }
   //parte iniziale della query, colonne, parte centrale e valori inseriti dall'utente
   $q="INSERT INTO <tabella> (". $temp[0]. ") VALUES (". $temp[1]. ")";
   $result=mysql_query($q); //la @ usala soltanto quando sarai sicuro dell'esattezza delle query
   //distruggo il vettore temp e la stringa q
   unset($temp,$q);
?>

fammi sapere

ciaoo

risposto 8 anni fa
larchitetto
X 0 X

risolto :)

grazie cmq  ;)

risposto 8 anni fa
bonecrusher
X 0 X

com'hai risolto? giust'una curiosità... <.<

risposto 8 anni fa
larchitetto
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda