Ciao, ho un problema con l'inserimento dei dati nella seguente tabella :
Nome tabella : rischio_individuale
I campi della tabella in ordine di colonna sono : matricola, uo, fattore, presente, tiporischio
Primary Key ho messo matricola e fattore (la matricola si ripete più volte il fattore con la matricola è unico invece)
Con una pagina di prova ho constatato che le variabili vengono prese e stampate correttamente quindi il problema ora non è più php ma la parte relativa all'SQL.
executeQuery è una funzione definita comeCodice PHP:<? session_start();
//Passaggio variabili
$uo=$_SESSION['u'];
$matr=$_SESSION['mat'];
//Conteggio numero rischi individuali
$n_righe=sizeof($_SESSION['f']);
//Inserisco i valori nella tabella rischio_individuale riga per riga
for($j=0;$j<$n_righe;$j++){
$fatt=$_SESSION['f'][$j];
$pres=$_SESSION['p'][$j];
$tipo=$_POST['rischioind'][$j];
$sql="INSERT INTO rischio_individuale
SET
matricola='$matr',
uo='$uo';
fattore='$fatt',
presente='$pres',
tiporischio='$tipo';
";
executeQuery($sql);
}
include 'conferma.php';
?>}
Ovviamente la query non viene eseguita correttamente.. Che cosa sbaglio ? eppure la sintassi mi pare corretta !Codice PHP:<?
function executeQuery($query){
$dbhost="localhost";
$dbname="db_admin";
$dbuser="root";
$dbpass="";
$user=$_POST['user'];
$pass=$_POST['password'];
//connessione a MySql
$connection = mysql_connect($dbhost,$dbuser,$dbpass) or die("Errore! Problema di connessione con MySql!");
//selezione del database
mysql_select_db($dbname,$connection) or die("Errore! Problema di connessione col database!");
//esecuzione query
$result=mysql_query($query, $connection) or die("Problema esecuzione query al database.Riprovare più tardi</br></br></br>".mysql_error()." </br></br></br> <a href=\"controllo_permessi.php\"> Torna Indietro </a>" );
mysql_close($connection) or die("Problema chiusura del database");
return $result ;
?>}
Sono mica le variabili di sessione il problema ? E' strano perchè con gli echo funziona tutto stampo quel che mi serve a video.
Ho anche un altro problema... se ad esempio il campo tiporischio della tabella è vuoto in certi casi (carattere di space o stringa vuota..mi serve che non ci sia scritto niente certe volte).. come faccio a memorizzare l'info senza generare questo errore ?
Altre volte invece tiporischio è diverso da "" oppure " " ma il valore di quella variabile cambia da iterazione a iterazione del ciclo forYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'fattore='Lavoro notturno', presente='NO', tiporischio=' '' at line 5
Ps.
Ho provato anche a mettere tiporischio sempre compilato come campo ma lo stesso non memorizza niente.

Rispondi quotando
