Inserire nel DB i dati provenienti da checkbox e recuperarli poi dal DB per la pagina di edit

Max61

Utente Attivo
2 Mar 2014
654
3
18
Buongiorno ho la necessità di inviare nel db i dati provenienti da checkbox e poi recuperarli per la pagina di edit, non so assolutamente come fare mi sapete aiutare?
Allego il codice delle checkbox che sono riuscito a fare:

PHP:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<label for="datocomunale">Dato comunale</label>
		&nbsp;&nbsp;&nbsp;&nbsp;<select name="datocomunale" value="<?php echo $datocomunale; ?>" required>	
			<option value="" selected="selected"></option>
			<option value="Dato comunale"> Dato comunale </option>	
	</select>	
	
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<label for="datoprovinciale">Dato provinciale</label>
		&nbsp;&nbsp;&nbsp;&nbsp;<select name="datoprovinciale" value="<?php echo $datoprovinciale; ?>" required>	
			<option value="" selected="selected"></option>
			<option value="Dato provinciale"> Dato provinciale </option>	
	</select>
	
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<label for="datoregionale">Dato regionale</label>
		&nbsp;&nbsp;&nbsp;&nbsp;<select name="datoregionale" value="<?php echo $datoregionale; ?>" required>	
			<option value="" selected="selected"></option>
			<option value="Dato regionale"> Dato regionale </option>	
	</select>
	
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<label for="datonazionale">Dato nazionale</label>
		&nbsp;&nbsp;&nbsp;&nbsp;<select name="datonazionale" value="<?php echo $datonazionale; ?>" required>	
			<option value="" selected="selected"></option>
			<option value="Dato nazionale"> Dato nazionale </option>	
	</select>
	
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<label for="altrodato">Altro dato</label>
		&nbsp;&nbsp;&nbsp;&nbsp;<select name="altrodato" value="<?php echo $altrodato; ?>" required>	
			<option value="" selected="selected"></option>
			<option value="Altro dato"> Altro dato </option>	
	</select>
Le checkbox nella fase di insert possono essere tutte nulle come tutte piene, non so se questo può servire...

Grazie in anticipo per l'aiuto

Max61
 

Max61

Utente Attivo
2 Mar 2014
654
3
18
Scusami ho postato per errore il codice relativo al menu a tendina che sto approntando in alternativa se non trovo soluzione alle checkbox, di seguito allego il codice delle checkbox:

PHP:
<input type="checkbox" name="tipodato[]" value="Dati comunali" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<?php
echo "<span style=\"color:green; font-size: 12pt\"> Dati provinciali <span style=\"color:red\"><span style=\"color:red\"></span><span style=\"color:blue\"></span><span style=\"color:red\"></span>"; 
 ?>
 <input type="checkbox" name="tipodato[]" value="Dati provinciali" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<?php
echo "<span style=\"color:blue; font-size: 12pt\"> Dati regionali <span style=\"color:red\"><span style=\"color:red\"></span><span style=\"color:blue\"></span><span style=\"color:red\"></span>"; 
 ?>
 <input type="checkbox" name="tipodato[]" value="Dati regionali" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<?php
echo "<span style=\"color:black; font-size: 12pt\"> Dati nazionali <span style=\"color:red\"><span style=\"color:red\"></span><span style=\"color:blue\"></span><span style=\"color:red\"></span>"; 
 ?>
 <input type="checkbox" name="tipodato[]" value="Dati nazionali" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<?php
echo "<span style=\"color:brown; font-size: 12pt\"> Altri dati <span style=\"color:red\"><span style=\"color:red\"></span><span style=\"color:blue\"></span><span style=\"color:red\"></span>"; 
 ?>
<input type="checkbox" name="tipodato[]" value="Altri dati" /><br><br>
Grazie
Max61
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
una domanda: come è fatta la tabella del db?
ad ogni checkbox corrisponde un campo? o hai un campo unico in cui inserire il valore proveniente dalle checkbox?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
allora forse ti conviene dare un indice alle checkbox, ti schematizzo (ho tolto l'echo in php per semplificare)
HTML:
......
<input type="checkbox" name="tipodato[1]" value="Dati provinciali" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
 <input type="checkbox" name="tipodato[2]" value="Dati regionali" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
....eccetera....
poi nella parte php dove fai l'insert
PHP:
<?php
//.........con campo_1, _2, _3 ecc i campi delle checkbox
$query="INSERT INTO tabella(campo_x, campo_y, campo_1,campo_2, campo_3) VALUES('per_ampo_x','per_campo_y'";
$add_altri_valori="";
foreach($_POST['tipodato'] as $valore){//concateno i valori provenienti dalle check
	$add_altri_valori .=",'".$valore."'";
}
$add_altri_valori .=")";//aggiungo la parentesi in fondo
//e completo la $query
$query .= $add_altri_valori;
//qui mentre fai le prove metti un var_dump per vedere se la query viene come dovrebbe
var_dump($query);//quando tutto ok lo togli o lo commenti
//.....
?>
prova con i nomi dei tuoi campi evidentemente e sappimi dire se funziona
 

Max61

Utente Attivo
2 Mar 2014
654
3
18
Ciao ho provato a fare l'insert, ma non inserisce nulla nel DB, sicuramente mi sono spiegato male perchè c'è un campo ($tipodato ) che non fa parte dei campi e non vorrei che l'errore fosse questo, comunque ti allego sia la pagina di inserimento dati che quella di insert, sicuramente saprai trovare l'errore:
pagina inserimento dati:
PHP:
<input type="checkbox" name="tipodato[1]" value="Dati comunali" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<?php
echo "<span style=\"color:green; font-size: 12pt\"> Dati provinciali <span style=\"color:red\"><span style=\"color:red\"></span><span style=\"color:blue\"></span><span style=\"color:red\"></span>"; 
 ?>
 <input type="checkbox" name="tipodato[2]" value="Dati provinciali" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<?php
echo "<span style=\"color:blue; font-size: 12pt\"> Dati regionali <span style=\"color:red\"><span style=\"color:red\"></span><span style=\"color:blue\"></span><span style=\"color:red\"></span>"; 
 ?>
 <input type="checkbox" name="tipodato[3]" value="Dati regionali" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<?php
echo "<span style=\"color:black; font-size: 12pt\"> Dati nazionali <span style=\"color:red\"><span style=\"color:red\"></span><span style=\"color:blue\"></span><span style=\"color:red\"></span>"; 
 ?>
 <input type="checkbox" name="tipodato[4]" value="Dati nazionali" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<?php
echo "<span style=\"color:brown; font-size: 12pt\"> Altri dati <span style=\"color:red\"><span style=\"color:red\"></span><span style=\"color:blue\"></span><span style=\"color:red\"></span>"; 
 ?>
<input type="checkbox" name="tipodato[5]" value="Altri dati" /><br><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" value="  Salva!  ">
</form><br><br>
pagina insert nel DB:
PHP:
<?php
     // connessione al database
include('Connessione.php');

	 $db= 'tblarchivio';
		
     $db = mysql_connect($host, $user, $password) or die ("Impossibile connettersi al server");
	 echo " ";
		
     mysql_select_db($database, $db) or die ("impossibile connettersi al database");
	 echo " ";
	
	$livello = $_POST['livello'];
	$categoria1 = $_POST['categoria1'];
	$categoria2 = $_POST['categoria2'];
	$categoria3 = $_POST['categoria3'];
	$categoria4 = $_POST['categoria4'];
	$categoria5 = $_POST['categoria5'];
	$datocomunale = $_POST['datocomunale'];
	$datoprovinciale = $_POST['datoprovinciale'];
	$datoregionale = $_POST['datoregionale'];
	$datonazionale = $_POST['datonazionale'];
	$altrodato = $_POST['altrodato'];
	$nomefile= $_POST['nomefile'];
	$variabili= $_POST['variabili'];
	
	


//.........con campo_1, _2, _3 ecc i campi delle checkbox 
$query="INSERT INTO tblarchivio(livello, categoria1, categoria2, categoria3, categoria4, categoria5, 
				datocomunale, datoprovinciale, datonazionale, datoregionale, altrodato, nomefile, variabili)
			VALUES ('$livello', '$categoria1', '$categoria2', '$categoria3', '$categoria4', '$categoria5', 
				    '$datocomunale', '$datoprovinciale', '$datonazionale', '$datoregionale', '$altrodato', '$nomefile', '$variabili') 
					VALUES(''$livello', '$categoria1', '$categoria2', '$categoria3', '$categoria4', '$categoria5', 
				    '$datocomunale', '$datoprovinciale', '$datonazionale', '$datoregionale', '$altrodato', '$nomefile', '$variabili')"; 
//echo $query; 					
$add_altri_valori=""; 
foreach($_POST['tipodato'] as $valore){//concateno i valori provenienti dalle check 
    $add_altri_valori .=",'".$valore."'"; 
} 
$add_altri_valori .=")";//aggiungo la parentesi in fondo 
//e completo la $query 
$query .= $add_altri_valori; 
//qui mentre fai le prove metti un var_dump per vedere se la query viene come dovrebbe 
var_dump($query);//quando tutto ok lo togli o lo commenti 
//..... 
?>
Grazie per la pazienza...
Max61
 
Ultima modifica:

Max61

Utente Attivo
2 Mar 2014
654
3
18
Ciao ho provato a fare l'insert, ma non inserisce nulla nel DB, sicuramente mi sono spiegato male perchè c'è un campo ($tipodato ) che non fa parte dei campi e non vorrei che l'errore fosse questo, comunque ti allego sia la pagina di inserimento dati che quella di insert, sicuramente saprai trovare l'errore:
pagina inserimento dati:
PHP:
<input type="checkbox" name="tipodato[1]" value="Dati comunali" />
****** 
<?php
echo "<span style=\"color:green; font-size: 12pt\"> Dati provinciali <span style=\"color:red\"><span style=\"color:red\"></span><span style=\"color:blue\"></span><span style=\"color:red\"></span>"; 
 ?>
 <input type="checkbox" name="tipodato[2]" value="Dati provinciali" />
****** 
<?php
echo "<span style=\"color:blue; font-size: 12pt\"> Dati regionali <span style=\"color:red\"><span style=\"color:red\"></span><span style=\"color:blue\"></span><span style=\"color:red\"></span>"; 
 ?>
 <input type="checkbox" name="tipodato[3]" value="Dati regionali" />
****** 
<?php
echo "<span style=\"color:black; font-size: 12pt\"> Dati nazionali <span style=\"color:red\"><span style=\"color:red\"></span><span style=\"color:blue\"></span><span style=\"color:red\"></span>"; 
 ?>
 <input type="checkbox" name="tipodato[4]" value="Dati nazionali" />
****** 
<?php
echo "<span style=\"color:brown; font-size: 12pt\"> Altri dati <span style=\"color:red\"><span style=\"color:red\"></span><span style=\"color:blue\"></span><span style=\"color:red\"></span>"; 
 ?>
<input type="checkbox" name="tipodato[5]" value="Altri dati" /><br><br>
**************************
<input type="submit" value="  Salva!  ">
</form><br><br>
pagina insert nel DB:
PHP:
<?php
     // connessione al database
include('Connessione.php');

	 $db= 'tblarchivio';
		
     $db = mysql_connect($host, $user, $password) or die ("Impossibile connettersi al server");
	 echo " ";
		
     mysql_select_db($database, $db) or die ("impossibile connettersi al database");
	 echo " ";
	
	$livello = $_POST['livello'];
	$categoria1 = $_POST['categoria1'];
	$categoria2 = $_POST['categoria2'];
	$categoria3 = $_POST['categoria3'];
	$categoria4 = $_POST['categoria4'];
	$categoria5 = $_POST['categoria5'];
	$datocomunale = $_POST['datocomunale'];
	$datoprovinciale = $_POST['datoprovinciale'];
	$datoregionale = $_POST['datoregionale'];
	$datonazionale = $_POST['datonazionale'];
	$altrodato = $_POST['altrodato'];
	$nomefile= $_POST['nomefile'];
	$variabili= $_POST['variabili'];
	
	


//.........con campo_1, _2, _3 ecc i campi delle checkbox 
$query="INSERT INTO tblarchivio(livello, categoria1, categoria2, categoria3, categoria4, categoria5, 
				datocomunale, datoprovinciale, datonazionale, datoregionale, altrodato, nomefile, variabili)
			VALUES ('$livello', '$categoria1', '$categoria2', '$categoria3', '$categoria4', '$categoria5', 
				    '$datocomunale', '$datoprovinciale', '$datonazionale', '$datoregionale', '$altrodato', '$nomefile', '$variabili') 
					VALUES(''$livello', '$categoria1', '$categoria2', '$categoria3', '$categoria4', '$categoria5', 
				    '$datocomunale', '$datoprovinciale', '$datonazionale', '$datoregionale', '$altrodato', '$nomefile', '$variabili')"; 
//echo $query; 					
$add_altri_valori=""; 
foreach($_POST['tipodato'] as $valore){//concateno i valori provenienti dalle check 
    $add_altri_valori .=",'".$valore."'"; 
} 
$add_altri_valori .=")";//aggiungo la parentesi in fondo 
//e completo la $query 
$query .= $add_altri_valori; 
//qui mentre fai le prove metti un var_dump per vedere se la query viene come dovrebbe 
var_dump($query);//quando tutto ok lo togli o lo commenti 
//..... 
?>
Grazie per la pazienza...
Max61
Ho provato ancora il codice che mi hai suggerito tu che allego...

PHP:
<?php
     // connessione al database
include('Connessione.php');

	 $db= 'tblarchivio';
		
     $db = mysql_connect($host, $user, $password) or die ("Impossibile connettersi al server");
	 echo " ";
		
     mysql_select_db($database, $db) or die ("impossibile connettersi al database");
	 echo " ";
	
	
     // connessione al database
include('Connessione.php');

     $db= 'tblarchivio';
        
     $db = mysql_connect($host, $user, $password) or die ("Impossibile connettersi al server");
     echo " ";
        
     mysql_select_db($database, $db) or die ("impossibile connettersi al database");
     echo " ";
    
    $livello = $_POST['livello'];
    $categoria1 = $_POST['categoria1'];
    $categoria2 = $_POST['categoria2'];
    $categoria3 = $_POST['categoria3'];
    $categoria4 = $_POST['categoria4'];
    $categoria5 = $_POST['categoria5'];
    $datocomunale = $_POST['datocomunale'];
    $datoprovinciale = $_POST['datoprovinciale'];
    $datoregionale = $_POST['datoregionale'];
    $datonazionale = $_POST['datonazionale'];
    $altrodato = $_POST['altrodato'];
    $nomefile= $_POST['nomefile'];
    $__________________variabili__________________= $_POST['__________________variabili__________________'];
    
    


//.........con campo_1, _2, _3 ecc i campi delle checkbox 
$query="INSERT INTO tblarchivio(livello, categoria1, categoria2, categoria3, categoria4, categoria5, 
                datocomunale, datoprovinciale, datonazionale, datoregionale, altrodato, nomefile, __________________variabili__________________)
           VALUES(''$livello', '$categoria1', '$categoria2', '$categoria3', '$categoria4', '$categoria5', 
                '$datocomunale', '$datoprovinciale', '$datonazionale', '$datoregionale', '$altrodato', '$nomefile', '$__________________variabili__________________')"; 
//echo $query;                     
$add_altri_valori=""; 
foreach($_POST['tipodato'] as $valore){//concateno i valori provenienti dalle check 
    $add_altri_valori .=",'".$valore."'"; 
} 
$add_altri_valori .=")";//aggiungo la parentesi in fondo 
//e completo la $query 
$query .= $add_altri_valori; 
//qui mentre fai le prove metti un var_dump per vedere se la query viene come dovrebbe 
var_dump($query);//quando tutto ok lo togli o lo commenti 
//.....
e adesso mi da questo errore e non inserisce nulla nel DB:
string(487) "INSERT INTO tblarchivio(livello, categoria1, categoria2, categoria3, categoria4, categoria5, datocomunale, datoprovinciale, datonazionale, datoregionale, altrodato, nomefile, __________________variabili__________________) VALUES(''Livello ', 'Categoria 1', 'Categoria 2', 'Categoria 3', 'Categoria 4', 'Categoria 5', '', '', '', '', '', 'nomefile', ''),'Dati comunali','Dati provinciali','Dati regionali','Dati nazionali','Altri dati')"

Grazie se saprai aiutarmi
Max61
 

Max61

Utente Attivo
2 Mar 2014
654
3
18
Ciao e grazie per la pazienza...
i campi delle checkbox sono...
$datocomunale
$datoprovinciale
$datoregionale
$datonazionale
$altrodato

Tu mi hai suggerito questo, o almeno io ho capito così:
nella form di scrittura dati
PHP:
<?php
echo "<span style=\"color:red; font-size: 10pt\"> Dati comunali <span style=\"color:red\"><span style=\"color:red\"></span><span style=\"color:blue\"></span><span style=\"color:red\"></span>"; 
 ?>
 <input type="checkbox" name="tipodato[1]" value="Dati comunali" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<?php
echo "<span style=\"color:green; font-size: 10pt\"> Dati provinciali <span style=\"color:red\"><span style=\"color:red\"></span><span style=\"color:blue\"></span><span style=\"color:red\"></span>"; 
 ?>
 <input type="checkbox" name="tipodato[2]" value="Dati provinciali" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<?php
echo "<span style=\"color:blue; font-size: 10pt\"> Dati regionali <span style=\"color:black\"><span style=\"color:black\"></span><span style=\"color:blue\"></span><span style=\"color:black\"></span>"; 
 ?>
 <input type="checkbox" name="tipodato[3]" value="Dati regionali" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<?php
echo "<span style=\"color:black; font-size: 10pt\"> Dati nazionali <span style=\"color:black\"><span style=\"color:black\"></span><span style=\"color:blue\"></span><span style=\"color:black\"></span>"; 
 ?>
 <input type="checkbox" name="tipodato[4]" value="Dati nazionali" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<?php
echo "<span style=\"color:brown; font-size: 10pt\"> Altri dati <span style=\"color:black\"><span style=\"color:black\"></span><span style=\"color:blue\"></span><span style=\"color:black\"></span>"; 
 ?>
<input type="checkbox" name="tipodato[5]" value="Altri dati" /><br><br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" value="  Salva!  ">
mentre nella form che inserisce i dati nel db, mi hai suggerito, o almeno io ho capito così::
PHP:
<?php
     // connessione al database
include('Connessione.php');

     $db= 'tblarchivio';
        
     $db = mysql_connect($host, $user, $password) or die ("Impossibile connettersi al server");
     echo " ";
        
     mysql_select_db($database, $db) or die ("impossibile connettersi al database");
     echo " ";
    
    
    $datocomunale = $_POST['datocomunale'];
    $datoprovinciale = $_POST['datoprovinciale'];
    $datoregionale = $_POST['datoregionale'];
    $datonazionale = $_POST['datonazionale'];
    $altrodato = $_POST['altrodato'];


//.........con campo_1, _2, _3 ecc i campi delle checkbox 
$query="INSERT INTO tblarchivio(datocomunale, datoprovinciale, datoregionale, datonazionale, altrodato)
           VALUES('$datocomunale, '$datoprovinciale', '$datoregionale', '$datonazionale', $altrodato)"; 
//echo $query;                     
$add_altri_valori=""; 
foreach($_POST['tipodato'] as $valore){//concateno i valori provenienti dalle check 
    $add_altri_valori .=",'".$valore."'"; 
} 
$add_altri_valori .=")";//aggiungo la parentesi in fondo 
//e completo la $query 
$query .= $add_altri_valori; 
//qui mentre fai le prove metti un var_dump per vedere se la query viene come dovrebbe 
var_dump($query);//quando tutto ok lo togli o lo commenti 
//.....

Ovviamente ci sono anche altri campi ma con quelli non ho problemi, quindi nemmeno te li menziono.

L'errore che mi da una volta selezionate tutte le checkbox, è questo:
string(218) "INSERT INTO tblarchivio(datocomunale, datoprovinciale, datoregionale, datonazionale, altrodato) VALUES(', '', '', '', ),'Dati comunali','Dati provinciali','Dati regionali','Dati nazionali','Altri dati')"

Come vedi i dati delle checkbox sembrano pieni, ma non inserisce nulla nel DB, che sia la parte di codice da
PHP:
$add_altri_valori="";
in poi?

Con la speranza di essere stato chiaro, ti saluto
Ciao
Max61
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
non non volevo i campi delle chek, ma come è fatta la tabella del db, es
id int(9) primary key
datocomunale varchar(250)
ecc.......
 

Max61

Utente Attivo
2 Mar 2014
654
3
18
Scusa non avevo capito...
ecco scaricato da php MyAdmin
PHP:
-- phpMyAdmin SQL Dump
-- version 4.0.4.1
-- [url]http://www.phpmyadmin.net[/url]
--
-- Host: 127.0.0.1
-- Generato il: Ago 31, 2015 alle 19:49
-- Versione del server: 5.6.11
-- Versione PHP: 5.5.3

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `archivioistat`
--

-- --------------------------------------------------------

--
-- Struttura della tabella `tblarchivio`
--

CREATE TABLE IF NOT EXISTS `tblarchivio` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `livello` varchar(250) NOT NULL,
  `categoria1` varchar(500) NOT NULL,
  `categoria2` varchar(500) NOT NULL,
  `categoria3` varchar(500) NOT NULL,
  `categoria4` varchar(500) NOT NULL,
  `categoria5` varchar(500) NOT NULL,
  `nomefile` varchar(500) NOT NULL,
  `datocomunale` varchar(20) NOT NULL,
  `datoprovinciale` varchar(20) NOT NULL,
  `datoregionale` varchar(20) NOT NULL,
  `datonazionale` varchar(20) NOT NULL,
  `altrodato` varchar(20) NOT NULL,
  `__________________variabili__________________` varchar(500) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Ciao di nuovo
Max61
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
guardando la tua prima query
PHP:
<?php
$query="INSERT INTO tblarchivio(livello, categoria1, categoria2, categoria3, categoria4, categoria5, 
                datocomunale, datoprovinciale, datonazionale, datoregionale, altrodato, nomefile, variabili)
				VALUES ('$livello', '$categoria1', '$categoria2', '$categoria3', '$categoria4', '$categoria5', 
                    '$datocomunale', '$datoprovinciale', '$datonazionale', '$datoregionale', '$altrodato', '$nomefile', '$variabili')";
?>
e poi la tabella non vedo intanto nella tabella il campo nomefile, poi che razza di nome hai dato al campo __variabili____?
tra l'altro (se non ricordo male) i campi tipo varchar ala massimo hanno una lunghezza di 250 caratteri, se superano devono essere di topo text o longtext
poi hai dalle chek diversi valori dove devono andare a salvarsi? dici che hai predisposto un campo per ogni checkbox, ha 5 chek dove sono i relativi campi?
per caso fai un concatenamento dei valori e li metti nel campo che chiami variabili?
 

Max61

Utente Attivo
2 Mar 2014
654
3
18
ciao
guardando la tua prima query
PHP:
<?php
$query="INSERT INTO tblarchivio(livello, categoria1, categoria2, categoria3, categoria4, categoria5, 
                datocomunale, datoprovinciale, datonazionale, datoregionale, altrodato, nomefile, variabili)
				VALUES ('$livello', '$categoria1', '$categoria2', '$categoria3', '$categoria4', '$categoria5', 
                    '$datocomunale', '$datoprovinciale', '$datonazionale', '$datoregionale', '$altrodato', '$nomefile', '$variabili')";
?>
e poi la tabella non vedo intanto nella tabella il campo nomefile, poi che razza di nome hai dato al campo __variabili____?
tra l'altro (se non ricordo male) i campi tipo varchar ala massimo hanno una lunghezza di 250 caratteri, se superano devono essere di topo text o longtext
poi hai dalle chek diversi valori dove devono andare a salvarsi? dici che hai predisposto un campo per ogni checkbox, ha 5 chek dove sono i relativi campi?
per caso fai un concatenamento dei valori e li metti nel campo che chiami variabili?


Ciao, e cominciamo dalla prima risposta:
come ti avevo scritto ho omesso alcuni campi con cui non ho alcun problema nell'inserimento nel DB, questi sono:
PHP:
`livello` varchar(250) NOT NULL, 
  `categoria1` varchar(500) NOT NULL, 
  `categoria2` varchar(500) NOT NULL, 
  `categoria3` varchar(500) NOT NULL, 
  `categoria4` varchar(500) NOT NULL, 
  `categoria5` varchar(500) NOT NULL, 
  `nomefile` varchar(500) NOT NULL, 
  `__________________variabili__________________` varchar(500) NOT NULL,

Seconda risposta:
il campo variabili l'ho fatto così perchè quando vado a visualizzare i dati con la classe 'datagrid.class.php' con gli underscore prima e dopo il nome allargo la colonna e migliora la leggibilità del dato nel caso di una stringa lunga.

Terza risposta: il campo varchar onestamente non so a quanto arriva, però quando ho creato la tabella attribuendogli 500 caratteri non mi ha dato alcun errore, quindi per mi li accetta.

Quarta risposta: i campi delle checkbox sono 5, per la precisione
PHP:
$datocomunale', '$datoprovinciale', '$datonazionale', '$datoregionale', '$altrodato'
con la speranza di essermi spiegato...ti saluto, e grazie ancora del tempo che mi stai dedicando.
Max61
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
per varchar non mi ero aggiornato
VARCHAR è una stringa a lunghezza variabile; le sue caratteristiche sono variate a partire da MySQL 5.0.3: in precedenza infatti la lunghezza massima era 255 e gli spazi vuoti a destra venivano eliminati in fase di memorizzazione; ora invece ciò non avviene più e la lunghezza massima dichiarabile è salita a 65535 caratteri. Gli attributi NATIONAL e BINARY hanno lo stesso significato visto in CHAR. Se definite una colonna VARCHAR con meno di 4 caratteri sarà trasformata in CHAR.
per quel nome strano che dici che ti deve allungare la cella della tabella forse ti conviene operare via php usando
esempio
se in $input hai
PHP:
<?php
$input="pinco";
//vuoi che la sua lunghezza si di 12 caratteri caratteri complessivi
$da_stampare=str_pad($input, 12, "_", STR_PAD_BOTH);// al posto di _ anche qualsiasi carattere o più
echo "$da_stampare<br>";//output ___pinco____
echo "stringa lunga ".strlen($da_stampare);// output 12
?>
quindi puoi allargare quanto vuoi
poi da quello che capisco i valori $datocomunale', '$datoprovinciale', '$datonazionale', '$datoregionale', '$altrodato'
vanno nei campi
`datocomunale` varchar(20) NOT NULL,
`datoprovinciale` varchar(20) NOT NULL,
`datoregionale` varchar(20) NOT NULL,
`datonazionale` varchar(20) NOT NULL,
`altrodato` varchar(20) NOT NULL,
giusto?
una cosa, sempre da quello che ho capito, alcuni valori delle chek possono essere vuoti (non selezionati), se è così prova a togliere il NOT NUL e mettilo a NULL
 

Max61

Utente Attivo
2 Mar 2014
654
3
18
ciao
per varchar non mi ero aggiornato

per quel nome strano che dici che ti deve allungare la cella della tabella forse ti conviene operare via php usando
esempio
se in $input hai
PHP:
<?php
$input="pinco";
//vuoi che la sua lunghezza si di 12 caratteri caratteri complessivi
$da_stampare=str_pad($input, 12, "_", STR_PAD_BOTH);// al posto di _ anche qualsiasi carattere o più
echo "$da_stampare<br>";//output ___pinco____
echo "stringa lunga ".strlen($da_stampare);// output 12
?>
quindi puoi allargare quanto vuoi
poi da quello che capisco i valori $datocomunale', '$datoprovinciale', '$datonazionale', '$datoregionale', '$altrodato'
vanno nei campi
`datocomunale` varchar(20) NOT NULL,
`datoprovinciale` varchar(20) NOT NULL,
`datoregionale` varchar(20) NOT NULL,
`datonazionale` varchar(20) NOT NULL,
`altrodato` varchar(20) NOT NULL,
giusto?
una cosa, sempre da quello che ho capito, alcuni valori delle chek possono essere vuoti (non selezionati), se è così prova a togliere il NOT NUL e mettilo a NULL


I campi delle checkbox li ho messi tutti NULL, ma rimane il problema che i dati provenienti dalle checkbox non li inserisce nel DB.
Quindi penso proprio che opterò per i menu a tendina:
PHP:
<label for="datocomunale">Dato comunale</label>
		&nbsp;&nbsp;<select name="datocomunale" value="<?php echo $datocomunale; ?>" >	
			<option value="" selected="selected"></option>
			<option value="Dato comunale"> Dato comunale </option>	
	</select>
mi piace meno visivamente, ma non posso fare diversamente.

Se non hai altre dritte, ti ringrazio per la pazienza...
Buona giornata

Max61
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
non mi hai rispsoto alla domanda
$datocomunale', '$datoprovinciale', '$datonazionale', '$datoregionale', '$altrodato'
vanno nei campi
`datocomunale` varchar(20) NULL,
`datoprovinciale` varchar(20) NULL,
`datoregionale` varchar(20) NULL,
`datonazionale` varchar(20) NULL,
`altrodato` varchar(20) NULL,
? perchè se è cosi tutto l'ambaradan che ho fatto inizialmente non serve
poi usa le chek quella tendina mi sembra un po' assurda
 

Max61

Utente Attivo
2 Mar 2014
654
3
18
ciao
non mi hai rispsoto alla domanda

? perchè se è cosi tutto l'ambaradan che ho fatto inizialmente non serve
poi usa le chek quella tendina mi sembra un po' assurda


Infatti le checkbox nel caso specifico sono di gran lunga la miglior cosa, ma rimane il problema, non insersce i dati nel DB, e non so come risolverlo...

Se hai la soluzione...
Grazie

Max61
 

Max61

Utente Attivo
2 Mar 2014
654
3
18
Scusa non mi ero accorto della domanda
Si i dati dei campi:
$datocomunale', '$datoprovinciale', '$datonazionale', '$datoregionale', '$altrodato'
vanno nei campi
`datocomunale` varchar(20) NULL,
`datoprovinciale` varchar(20) NULL,
`datoregionale` varchar(20) NULL,
`datonazionale` varchar(20) NULL,
`altrodato` varchar(20) NULL,


Ciao
Max61