Ciao a tutti, ho un problema che mi sta facendo impazzire. Un semplice passaggio di variabili. Dopo aver inviato un modulo vado ad inserire le variabili memorizzate in $_POST nel database. Alcune arrivano e si inseriscono nel db, altre invece no. Non posso postare tutto il codice perchè è una cosa un po' più complessa di un semplice invio->inserimento, ci sono prima vari controlli come quelli dei campi del modulo e altro ancora. Le variabili che non arrivano comunque non subiscono nessun controllo quindi non capisco perchè spariscono.
Al momento dell' inserimento inserisco le variabili in un' array che poi passo ad una funzione che fa una insert:
Codice PHP:
//valori che verranno inseriti nel db
$values = array(
"", $_SESSION["last_id"], $_POST["codice"], $_POST["luogo"],
$_POST["codice_segheria"], $_POST["misure_blocco"], $_POST["peso"],
$_POST["qualita"], $_POST["note_blocco"], $_POST["lista_aziende"]
);
//richiamo la function che inserirà i dati nel db
f_db_insert("carico_materiali", $values);
Questa è la funzione che esegue la insert:
Codice PHP:
function f_db_insert($table_name, $values)
{
//trovo il numero di elementi dell' array
$how_elements = count($values);
//inizializzo una variabile che costruirà la parte di stringa sql dei valori
$value_to_db = "";
//inizializzo una variabile per gestire la virgola che separa i valori nell' array
$virgola = "";
//creo la stringa
for($i=0;$i<$how_elements;$i++)
{
//evito di inserire la virgola all' inizio e alla fine
if($i<$how_elements && $i>0)
{$virgola = ",";}
$value_to_db = $value_to_db . $virgola . "'" . $values[$i] . "'";
}
//creo la stringa sql x la query
$query = "INSERT INTO " . $table_name . " VALUES (" . $value_to_db . ")";
//eseguo la query
mysql_query($query) or die("Errore nell' esecuzione della query: " . $query);
//memorizzo l' ultimo id inserito in una var di sessione
$_SESSION["last_id"] = mysql_insert_id();
}
La funzione funziona perchè la uso anche per altri casi in cui devo eseguire una insert. Nel form non ci sono errori, tutti i campi hanno un nome quindi passano la variabile. Cosa puo essere che al momento di inserire i dati nel db alcuni li inserisce ed alcuni no? Non arrivano le variabili inserite nei campi "LUOGO" e "PESO", le altre arrivano tutte.
Questo è il form che invia i dati:
codice HTML:
<div id="content">
<br>
<form name="caricoform" action="?sez=magazzino&sezmag=carico" method="post">
<input type="hidden" name="step" >
<input type="hidden" name="id_blocco" value="">
<div style="border:solid 1px #00008B; background-color: #00FFFF;">
Codice
<input style="border: ;" type="text" name="codice" value="" >
<input type="submit" value="Vai">
</div>
<input name="ddt_assoc" type="checkbox" checked>
Associa a DDT
<div id="uno" style="height: 140px; border-left:solid 1px #00008B; border-bottom:solid 1px #00008B; background-color: #00FFFF; margin-left: 8px; visibility:display;">
<input type="hidden" name="id_ddt" value="">
<div style="float: left; width:200px; border: ;">
Num. DDT
<input type="text" name="numero_ddt" value="" disabled>
</div>
<div style="float: left; width:200px; border: ;">
Data DDT<br> <input name="data_ddt" type="text" value="" disabled>
</div>
<div style="clear: both; width:500px;">
<div style="width:80px; height:30px;">A mezzo</div>
<div style="float: left;">
<input type="radio" value="vettore" name="a_mezzo" checked>
Vettore <br>
<input type="radio" value="cedente" name="a_mezzo" >
Cedente <br>
<input type="radio" value="cessionario" name="a_mezzo">
Cessionario
</div>
<div style="float: left; height:30px;">
<select name="lista_vettori" disabled>
<option value=3 >Trasporto marmi di Aldovardi Enzo & C. S.n.C</option>
<option value=4 >Autotrasporti Martinelli Filippo di Martinelli Stefano</option>
<option value=5 >SE.TRA.PORT</option>
<option value=6 >Ital Carrara S.r.L</option>
<option value=7 >Ricci Astolfo & C. S.n.C.</option>
</select>
</div>
</div>
</div>
<div style="width:200px; clear:both; float:left;">
Cedente <br>
<select name="lista_aziende">
<option value=1 >SA.GE.VAN S.r.L</option>
<option value=2 >Stone Trading International</option>
<option value=3 >Trasporto marmi di Aldovardi Enzo & C. S.n.C</option>
<option value=4 >Autotrasporti Martinelli Filippo di Martinelli Stefano</option>
<option value=5 >SE.TRA.PORT</option>
<option value=6 >Ital Carrara S.r.L</option>
<option value=7 >Ricci Astolfo & C. S.n.C.</option>
</select>
</div>
<div style="float:left; width:200px; clear: both;">
Codice segheria<br>
<input name="codice_segheria" type="text" value="">
</div>
<div style="float:left; width:200px;">Luogo<br>
<input name="luogo" type="text" value="">
</div>
<div style="float:left; clear: both; width:200px;">Misure CM<br>
<input type="text" name="misure_blocco" value="">
</div>
<div style="float:left; width:200px;">Qualità<br>
<input name="qualita" type="text" value="">
</div>
<div style="float:left; clear: both; width:200px;">Peso<br>
<input name="peso" type="text" value="">
</div>
<div style="float:left; width:200px;">Note<br>
<textarea name="note_blocco" cols="20" rows="3"></textarea>
</div>
</form>
</div>
</div>
Grazie 1000