Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    HELP: problema con inserimento dati su DB Mysql

    Ciao a tutti,
    il mio intento è realizzare un form per l'inseriento dati su di una tabella di un database mysql su cui mi sono già autenticato.
    Questa è la tabella su cui devo fare l'inserimento:


    codice:
     
    Campo  Tipo Collation Attributi Null Predefinito Extra Azione 
      id            int(11)   No None AUTO_INCREMENT               
      nome       varchar(128) latin1_swedish_ci  No None                
      cognome  varchar(128) latin1_swedish_ci  No None                
      sesso       varchar(120) latin1_swedish_ci  No None                
      codfis      varchar(128) latin1_swedish_ci  No None                
      città       varchar(128) latin1_swedish_ci  No None                
      titolo       varchar(128) latin1_swedish_ci  No None                
      reato      varchar(120) latin1_swedish_ci  No None                
      giustizia   varchar(120) latin1_swedish_ci  No None                
      note       varchar(120) latin1_swedish_ci  No None

    Questa è la pagina di inserimento:

    insert.php

    codice:
     
    <?php
    	session_start();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Inserimento scheda</title>
    <link href="loginmodule.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
    .auto-style1 {
    	text-align: center;
    }
    .auto-style2 {
    	color: #FF9900;
    	text-align: center;
    	font-size: small;
    }
    .auto-style3 {
    	border: 1px solid #000000;
    }
    .auto-style4 {
    	margin-bottom: 0px;
    }
    </style>
    </head>
    <body>
    <?php
    	if( isset($_SESSION['ERRMSG_ARR']) && is_array($_SESSION['ERRMSG_ARR']) && count($_SESSION['ERRMSG_ARR']) >0 ) {
    		echo '<ul class="err">';
    		foreach($_SESSION['ERRMSG_ARR'] as $msg) {
    			echo '[*]',$msg,''; 
    		}
    		echo '[/list]';
    		unset($_SESSION['ERRMSG_ARR']);
    	}
    $sesso = array(
    	'uomo' => 1,
    	'donna' => 2
    );
    $città = array(
    	'Siena' => 1,
    	'Catania' => 2
    );
    $titolo = array(
    	'Licenza elementare' => 1,
    	'Licenza media' => 2,
    	'Diploma' => 3,
    	'Laurea' => 4,
    	'Nessuno' => 5
    );
    $reato = array(
    	'Contro il patrimonio' => 1,
    	'Contro la persona' => 2,
    	'Contro L. 309/90' => 3,
    	'ALTRO' => 4,
    	'N.S.' => 5
    );
    $giustizia = array(
    	'Detenuti' => 1,
    	'Semiliberi' => 2,
    	'Detenuti domiciliari' => 3,
    	'Affidati in prova ai s.s.' => 4,
    	'Ex detenuti' => 5,
    	'Arresti domiciliari' => 6,
    	'Misure di sicurezza' => 7,
    	'Sospensione pena' => 8
    );
    
    function generateSelect($name = '', $options = array()) {
    	$html = '<select name="'.$name.'">';
    	foreach ($options as $option => $value) {
    		$html .= '<option value='.$value.'>'.$option.'</option>';
    	}
    	$html .= '</select>';
    	return $html;
    };
    ?>
    <form id="schedainserimento" name="schedainserimento" method="post" action="insert-exec.php">
        <p class="auto-style1">
    	[img]minilogo.jpg[/img][img]sole.jpg[/img]</p>
    	<p class="auto-style2"></p>
    	<p class="auto-style2"></p>
    	<p class="auto-style2">Inserimento scheda nuovo utente</p>
    	<p class="auto-style2"></p>
      <table align="center" cellpadding="2" cellspacing="0" style="width: 813" class="auto-style3">
        <tr>
          <th style="width: 144px">Nome </th>
          <td style="width: 76px">
    	  <input name="Nome" type="text" class="textfield" id="nome" style="width: 160px" /></td>
          <td style="width: 130px">Cognome </td>
          <td style="width: 282px">
    	  <input name="Cognome" type="text" class="textfield" id="cognome" style="width: 297px" /></td>
        </tr>
        <tr>
          <th style="width: 144px">Sesso</th>
          <td style="width: 76px">
    	 <select name="sesso">
    	<option value="1">Uomo</option>
    	<option value="2">Donna</option>
    	</select>
          <td>Codice Fiscale</td>
          <td>
    	  <input name="Codfis" type="text" class="textfield" id="codfis" style="width: 297px; height: 17px" /></td>
        </tr>
        <tr>
          <th style="width: 144px">Città</th>
          <td style="width: 76px">
    	  <select name="Città">
    	<option value="1">Siena</option>
    	<option value="2">Catania</option>
    	</select>
          <td>Titolo di Studio</td>
          <td>
    	<select name="Titolo">
    	<option value="1">Licenza elementare</option>
    	<option value="2">Licenza media</option>
    	<option value="3">Diploma</option>
    	<option value="4">Laurea</option>
    	<option value="5">Nessuno</option>
    	</select>
    
        </tr>
        <tr>
          <th style="width: 144px">Tipologia Reato</th>
          <td>
    	 <select name="Reato">
    	<option value="1">Contro il patrimonio</option>
    	<option value="2">Contro la persona</option>
    	<option value="3">Contro L. 309/90</option>
    	<option value="4">ALTRO</option>
    	<option value="5">N.S.</option>
    	</select>
    
        </tr>
          <td>
    	  Giustizia Adulti</tr>
          <td>
    	<select name="Giustizia">
    	<option value="1">Detenuti</option>
    	<option value="2">Semiliberi</option>
    	<option value="3">Detenuti domiciliari</option>
    	<option value="4">Affidati in prova ai s.s.</option>
    	<option value="5">Ex detenuti</option>
    	<option value="6">Arresti domiciliari</option>
    	<option value="7">Misure di sicurezza</option>
    	<option value="8">Sospensione pena</option>
    	</select>
    
        </tr>
        <tr>
          <td style="width: 144px">Note</td>
          <td colspan="3">
    	  <input name="Note" type="text" class="textfield" id="note" style="width: 618px; height: 78px" /></td>
        </tr>
        <tr>
          <td class="auto-style1" colspan="4">
    
    
    
    
    
    
    	  <input type="submit" name="Inserisci" value="Inserisci" class="auto-style4" /></td>
        </tr>
      </table>
    </form>
    <p class="auto-style1"></p>
    <div>
    </div>
    </body>
    </html>
    Questa è la pagina cui giungono i dati passati dal post della pagina precedente:

    insert_exec.php
    codice:
    <?php
    	//Start session
    	session_start();
    	
    	//Include database connection details
    	require_once('config.php');
    	
    	//Array to store validation errors
    	$errmsg_arr = array();
    	
    	//Validation error flag
    	$errflag = false;
    	
    	//Connect to mysql server
    	$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
    	if(!$link) {
    		die('Failed to connect to server: ' . mysql_error());
    	}
    	
    	//Select database
    	$db = mysql_select_db(DB_DATABASE);
    	if(!$db) {
    		die("Unable to select database");
    	}
    
    //Function to sanitize values received from the form. Prevents SQL injection
    	function clean($str) {
    		$str = @trim($str);
    		if(get_magic_quotes_gpc()) {
    			$str = stripslashes($str);
    		}
    		return mysql_real_escape_string($str);
    	}
    	
    	//Sanitize the POST values
    	$nome = clean($_POST['nome']);
    	$cognome = clean($_POST['cognome']);
    	$sesso = clean($_POST['sesso']);
    	$codfis = clean($_POST['codfis']);
    	$città = clean($_POST['città']);
    	$titolo = clean($_POST['titolo']);
    	$reato = clean($_POST['reato']);
    	$giustizia = clean($_POST['giustizia']);
    	$note = clean($_POST['note']);
    
    		
    	//Input Validations
    	if($nome == '') {
    		$errmsg_arr[] = 'Nome mancante!';
    		$errflag = true;
    	}
    	if($cognome == '') {
    		$errmsg_arr[] = 'Cognome mancante!';
    		$errflag = true;
    	}
    	if($sesso == '') {
    		$errmsg_arr[] = 'Sesso mancante!';
    		$errflag = true;
    	}
    	if($codfis == '') {
    		$errmsg_arr[] = 'Codice Fiscale mancante!';
    		$errflag = true;
    	}
    	if($città == '') {
    		$errmsg_arr[] = 'Città mancante!';
    		$errflag = true;
    	}
    	if($titolo == '') {
    		$errmsg_arr[] = 'Titolo di studio mancante!';
    		$errflag = true;
    	}
    	if($reato == '') {
    		$errmsg_arr[] = 'Tipologia reato mancante!';
    		$errflag = true;
    	}
    	if($giustizia == '') {
    		$errmsg_arr[] = 'Settore giudiziario mancante!';
    		$errflag = true;
    	}
    	if($note == '') {
    		$errmsg_arr[] = 'note mancanti!';
    		$errflag = true;
    	}
    
    
    $qry="INSERT INTO utenti (nome, cognome, sesso, codfis, città, titolo, reato, giustizia, note) VALUES('$nome','$cognome','$sesso','$codfis','$città','$titolo','$reato','$giustizia,'$note')";
    
    $result = @mysql_query($qry);
    	
    	//Check whether the query was successful or not
    	if($result) {
    		header("location: insert-ok.php");
    		exit();
    	}else {
    		die("Query failed");
    	}
    ?>
    Questa è la pagina che restituisce il risultato dell'operazione:
    insert-ok.php

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Operazione completata</title>
    <link href="loginmodule.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <h1>Inserimento scheda effettuato correttamente!</h1>
    
    
    Clicca qui per effettuare un altro inserimento.</p>
    </body>
    </html>

    Appena inserisco i dati nel form mi viene restituito un QUERY FAILED.....non riesco a capire dove stia l'errore.....ci sto sbattendo la testa da un paio di giorni ma non riesco a venirne a capo...mi date una mano??

    Grazie a tutti!!

    Tiziano

  2. #2
    Mi scuso in anticipo se la domanda è troppo complessa o se ho scritto troppo testo. Non me ne vogliate! Scusate! :-)

  3. #3
    Aggiungo che: temo il problema possa stare nel come faccio il post dei valori delle droplist box nella pagina di inserimento. Forse il valore che ottengo non viene postato correttamente nella pagina successiva. Se elimino i costrutti relativi alle drop box il codice funziona.....non capisco davvero!

  4. #4
    fatti stampre la query prima di mandarla al db mysql e vedi che cosa hai scritto, magari sbagli a creare la query...oppure togli la @ da mysql_query e vedi che errore lancia (se lo lancia)
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Ciao Santino,
    grazie per la tua risposta innanzitutto!

    Anche togliendo la @ davanti alla query non ottengo nessun errore....:-(
    Altri suggerimenti?

    Tiziano

  6. #6
    Originariamente inviato da Tulipan0nero
    Ciao Santino,
    grazie per la tua risposta innanzitutto!

    Anche togliendo la @ davanti alla query non ottengo nessun errore....:-(
    Altri suggerimenti?

    Tiziano
    e la query? fattela stampare e controlla se, visivamente, ti sembra corretta. poi prendi la query stampata e falla eseguire direttamente a mysql (da console mysql o phpmyadmin o quello che usi di solito) e vedi che cosa succede
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    Ciao Santino,
    idem per la query: se la eseguo da phpmyadmin non mi da errore.
    Probabilmente il problema sta nella sintassi del form di inserimento dati......ma non capisco DOVE....

  8. #8
    HO provato a semplificare la query nello script togliendo i valori che mi vengono fuori dalle droplist e lasciando solo quelli che mi vengon fuori dai campi di testo.
    La query semplificata viene così:

    codice:
    $qry="INSERT INTO utenti (nome, cognome, codfis, note) VALUES('$nome','$cognome','$codfis',,'$note')";
    LA cosa anomala è che la pagina che ottengo è quella di insert_ok.php con il messaggio di avvenuto inserimento.
    Se vado a controllare la tabella sul database questa è stata effettivamente popolata di un record che a rigor di logica dovrebbe contenere solo i valori Nome, Cognome, Codice Fiscale e Note ma invece è un record vuoto!!!
    A questo punto credo le cose siano due: o c'è un errore di sintassi da qualche parte nella pagina con il forum di inserimento....oppure c'è qualche errore nella pagina insert_exec.php (che non trovo!!!).
    Qualche suggerimento?

  9. #9
    Ho anche provato a fare le insert tramite droplist box utilizzando una tecnica diversa ma il QUERY FAILED continua imperterrito.
    Ecco la pagina insert.php riveduta con le nuove droplist (che forse sono più eleganti):

    codice:
    <?php
    	session_start();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Inserimento scheda</title>
    <link href="loginmodule.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
    .auto-style1 {
    	text-align: center;
    }
    .auto-style2 {
    	color: #FF9900;
    	text-align: center;
    	font-size: small;
    }
    .auto-style3 {
    	border: 1px solid #000000;
    }
    .auto-style4 {
    	margin-bottom: 0px;
    }
    </style>
    </head>
    <body>
    <?php
    	if( isset($_SESSION['ERRMSG_ARR']) && is_array($_SESSION['ERRMSG_ARR']) && count($_SESSION['ERRMSG_ARR']) >0 ) {
    		echo '<ul class="err">';
    		foreach($_SESSION['ERRMSG_ARR'] as $msg) {
    			echo '[*]',$msg,''; 
    		}
    		echo '[/list]';
    		unset($_SESSION['ERRMSG_ARR']);
    	}
    elseif(isset($_POST['Submit']) )  
    
    {  
    
      $sesso = $_POST['sesso'];  
      $città = $_POST['città'];  
      $titolo = $_POST['titolo'];  
      $reato = $_POST['reato'];  
      $giustizia = $_POST['giustizia'];  
    
    }  
    
    ?>
    <form id="schedainserimento" name="schedainserimento" method="post" action="insert-exec.php">
        <p class="auto-style1">
    	[img]minilogo.jpg[/img][img]sole.jpg[/img]</p>
    	<p class="auto-style2"></p>
    	<p class="auto-style2"></p>
    	<p class="auto-style2">Inserimento scheda nuovo utente</p>
    	<p class="auto-style2"></p>
      <table align="center" cellpadding="2" cellspacing="0" style="width: 813" class="auto-style3">
        <tr>
          <th style="width: 144px">Nome </th>
          <td style="width: 76px">
    	  <input name="Nome" type="text" class="textfield" id="nome" style="width: 160px" /></td>
          <td style="width: 130px">Cognome </td>
          <td style="width: 282px">
    	  <input name="Cognome" type="text" class="textfield" id="cognome" style="width: 297px" /></td>
        </tr>
        <tr>
          <th style="width: 144px">Sesso</th>
          <td style="width: 76px">
    	 <select name="sesso"  value='sesso'>
    	<option value="Uomo">Uomo</option>
    	<option value="Donna">Donna</option>
    	</select>
          <td>Codice Fiscale</td>
          <td>
    	  <input name="Codfis" type="text" class="textfield" id="codfis" style="width: 297px; height: 17px" /></td>
        </tr>
        <tr>
          <th style="width: 144px">Città</th>
          <td style="width: 76px">
    	  <select name="città">
    	<option value="Siena">Palermo</option>
    	<option value="Catania">Catania</option>
    	</select>
          <td>Titolo di Studio</td>
          <td>
    	<select name="titolo">
    	<option value="Licenza elementare">Licenza elementare</option>
    	<option value="Licenza media">Licenza media</option>
    	<option value="Diploma">Diploma</option>
    	<option value="Laurea">Laurea</option>
    	<option value="Nessuno">Nessuno</option>
    	</select>
    
        </tr>
        <tr>
          <th style="width: 144px">Tipologia Reato</th>
          <td>
    	 <select name="reato">
    	<option value="Contro il patrimonio">Contro il patrimonio</option>
    	<option value="Contro la persona">Contro la persona</option>
    	<option value="Contro L. 309/90">Contro L. 309/90</option>
    	<option value="ALTRO">ALTRO</option>
    	<option value="N.S.">N.S.</option>
    	</select>
    
        </tr>
          <td>
    	  Giustizia Adulti</tr>
          <td>
    		<select name="giustizia">
    	<option value="Detenuti">Detenuti</option>
    	<option value="Semiliberi">Semiliberi</option>
    	<option value="Detenuti domiciliari">Detenuti domiciliari</option>
    	<option value="Affidati in prova ai s.s.">Affidati in prova ai s.s.</option>
    	<option value="Ex detenuti">Ex detenuti</option>
    	<option value="Arresti domiciliari">Arresti domiciliari</option>
    	<option value="Misure di sicurezza">Misure di sicurezza</option>
    	<option value="Sospensione pena">Sospensione pena</option>
    	</select>
    
        </tr>
        <tr>
          <td style="width: 144px">Note</td>
          <td colspan="3">
    	  <input name="Note" type="text" class="textfield" id="note" style="width: 618px; height: 78px" /></td>
        </tr>
        <tr>
          <td class="auto-style1" colspan="4">
    
    
    
    
    
    
    	  <input type="submit" name="Submit" value="Submit" class="auto-style4" /></td>
        </tr>
      </table>
    </form>
    <p class="auto-style1"></p>
    <div>
    </div>
    </body>
    </html>

    Fatto sta che anche così lo script continua anon funzionare....mumble mumble!


    Tiziano

  10. #10
    Altro giro, altra scoperta: se metto una sola drop box list nella pagina di inserimento e provo a fare la insert in questo modo continua anon funzionare....non va bene lo script che trasmette come variabile il risultato della selezione della droplist. Non va bene per il tipo di campo che ho selezionato sul database per la tabella o non va bene per un errore di sintassi nello script di inserimento?

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.