Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [PHP-SQL] Insert in un ciclo for

    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.

    Codice 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';
            
    ?>}
    executeQuery è una funzione definita come
    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 ;

    ?>}
    Ovviamente la query non viene eseguita correttamente.. Che cosa sbaglio ? eppure la sintassi mi pare corretta !
    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 ?

    You 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
    Altre volte invece tiporischio è diverso da "" oppure " " ma il valore di quella variabile cambia da iterazione a iterazione del ciclo for

    Ps.
    Ho provato anche a mettere tiporischio sempre compilato come campo ma lo stesso non memorizza niente.

  2. #2
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Perchè quel ; dopo uo='$uo' ?

  3. #3
    Ho ricreato la tabella e spostato il campo quindi quell'uo era finale ed rimasto il ;
    L'ho già tolto.. l'avevo appena visto due secondi fa..
    Mentre smanettando ho risolto il fatto dei campi nulli.. in pratica nelle impostazioni della tabella la voce tiporischio devo mettere la spunta su NULL almeno così ora non da più errore e sembra memorizzare le informazioni nella tabella... l'unica cosa è che non mi richiama quell'include conferma.php finale ma questo penso sia un altro paio di maniche

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.