Inserire Array di dati in database....

Emix

Utente Attivo
15 Feb 2010
596
0
16
Salve a tutti...
Sto creando un form per l'invio di dati multipli... praticamente ho 4 box su cui inserisco dei dati... ognuno di questi è replicato n volte... nel senso che è in base alle necessità che possono diventare da 1 a 100 blocchi...
quindi ammettiamo di avere:

codice[0] -------------- descrizione [0] --------------- barcode[0] -------------- articolo[0]


come faccio a fare in modo che tutti i campi inseriti vengono immessi nel database???
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Spero tu voglia fare una tupla per ogni 'mini form' compilato.
In tal caso iteri il procedimento di inserimento finché gli array hanno dei valori settati.
Per esempio:
PHP:
$i=0;
While(isset($input[$i])){
 //... Inserimento
 $i++;
}
Puoi farlo anche con un utilizzando un for ovviamente.
Controlla i valori di input e non li caricare nel db così come te li inserisce l'utente.
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
forse è meglio se mi spiego meglio... i quattro blocchi sono concatenati uno all'altro nel senso che teoricamente appena uno inserisce il barcode AUTOCOMPILA il resto dei tre campi, quindi trattandosi di un magazzino i campi saranno tutti SEMPRE compilati... altrimenti cmq son problemi dell'utente (anche se ovviamente i campi vuoti non li processo..)
Il mio problema ora è capire come fare per generare gli array... tecnicamente il valore in i è uguale per tutti e 4... quindi come faccio a fare un ciclo unico e processare tutti e 4 gli array?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
ecco uno schema di come potresti fare, visto che ad ogni codice gli altri dati si autocompletano
PHP:
<?php
//..........
$codice=$_POST['codice'];
$descrizione=$_POST['descrizione'];
$barcode=$_POST['barcode'];
$articolo=$_POST['articolo'];
for($k=0; $k < count($codice); $k++){
	/*poi verifichi e processi
	$codice[$k]
	$descrizione[$k]
	$barcode[$k]
	$articolo[$k]
	INSERT INTO tabella(codice,descrizione, barcode,articolo) VALUES('{$codice[$k]}',..ecc
	*/
}
//........
?>
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Allora dovresti chiamare i campi con campo1[], campo2[], campo3[] e campo4[]
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
allora form è questo :

PHP:
<?php
//creo la sessione
//in TUTTE le pagine in cui uso le sessioni
session_start();
if(!isset($_SESSION['user']) || !isset($_SESSION['pwd'])){//verifichi che esistano entrambe
    //non esistono
	//var_dump($_SESSION);
    header("location:login.php");
    exit();
} 
if(!isset($_SESSION['barcode'])){
} else {
//unset($_SESSION['barcode']); 
if(basename($_SERVER['HTTP_REFERER']) != 'puntifidelity.php'){
    //non provengo da login.php
   unset($_SESSION['barcode']);
//var_dump($_SESSION);
} else {
	}
}
//session_destroy($_SESSION['barcode']);
//session_write_close();
 include('connect.php');
?>
<!DOCTYPE html>
<html lang="it">
  <head>
    <meta charset="utf-8">
    <title>Creazione DdT</title>
            <style type="text/css">
        * { font-family:Arial; }
        h2 { padding:0 0 5px 5px; }
        h2 a { color: #224f99; }
        a { color:#999; text-decoration: none; }
        a:hover { color:#802727; }
        p { padding:0 0 5px 0; }

        input { padding:5px; border:1px solid #999; border-radius:4px; -moz-border-radius:4px; -web-kit-border-radius:4px; -khtml-border-radius:4px; }
        </style>
        <script type="text/javascript" src="ajax.js"></script>
	<script type="text/javascript">
	
	var ajax = new sack();
	var currentClientID=false;
	function getClientData()
	{
		var clientId = document.getElementById('clientID').value.replace(/[^0-9]/g,'');
		if(clientId.length==4 && clientId!=currentClientID){
			currentClientID = clientId
			ajax.requestFile = 'getClient.php?getClientId='+clientId;	// Specifying which file to get
			ajax.onCompletion = showClientData;	// Specify function that will be executed after file has been found
			ajax.runAJAX();		// Execute AJAX function			
		}
		
	}
	
	function showClientData()
	{
		var formObj = document.forms['clientForm'];	
		eval(ajax.response);
	}
	
	
	function initFormEvents()
	{
		document.getElementById('clientID').onblur = getClientData;
		document.getElementById('clientID').focus();
	}
	
	
	window.onload = initFormEvents;
	</script>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
        <script>
    $(function() {
      $("#aggiungi").click(function() {
        elem = $(".campo").first().clone();
        elem.css("display", "block");
        elem.appendTo("#campi");
      });

      $("#campi").on("click", ".remove", function() {
        $(this).parent().remove();
      });

      $("#aggiungi").click();
    });
    </script>
<style type="text/css">
body { background-image: url(sfondo.jpg); 
background-repeat: repeat-x;
font: Eras Medium ITC;
}
</style>

<style type="text/css">
#main {
	width:820px;
	height:600px;
	position:absolute;
	top:352px;
	left:523px;
	margin:-150px 0 0 -336px;
}
</style>
</head>
<body bgcolor="#f7b76b">
  <p align="center">
 <img src="images/logo.png" >
  <form action="read_ddt.php" method="post" name="read"> 
  <div id="main"> 
   Operatore: <font color="#FF0000"><?php echo $_SESSION[user]; ?></font><br>
   Data: <?php echo (date("d/m/Y"));?><br>
   Ora: <?php echo (date("H:i"));?><br>
   Barcode card:<font color="#FF0000"><?php echo $_SESSION[barcode]; ?></font><br><br>
   <input type="button" onClick="window.open('puntifidelity.htm', 'Cerca card', 'width=690, height=700, resizable, status, scrollbars=1, location');"
value="Cerca card">
   <p align="left"><a href="#" id="aggiungi">Aggiungi riga</a></p>

    <div id="campi">
    <p>
      <div class="campo" style="display: none;">
        <input type="text" placeholder="Barcode" name="campo[]" id="barcode">
        <input type="text" placeholder="Codice" name="codice[]" id="clientID">
        <input type="text" placeholder="Descrizione" name="descrizione[]" id="descrizione">
        <input type="text" placeholder="Quantità" name="quantita[]" id="quantita">
        <br><a href="#" class="remove">Rimuovi riga</a></br>
        </p>
      </div>
    </div>
    <p>
    <?php 
	if(!isset($_SESSION['barcode'])){
	echo '<b><font color="black"> Saldo Punti : </font></b> 0 <br>';
	echo '<br>';
} else {
	$query=mysql_query("SELECT * FROM fidelitypoint WHERE barcode='$_SESSION[barcode]' ");
    //verifico che esista una una card con tale barcode 
    $esiste=mysql_num_rows($query);
    //se $esiste == 0 non cè
    if($esiste > 0){//esiste
        //estraggo usn e pass
        $rows=mysql_fetch_array($query);
		}
		$querypunti=mysql_query("Select sum(punti) from fidelitypoint where barcode='$_SESSION[barcode]'");
		$row=mysql_fetch_array($querypunti);
	   echo'<b><font color="black"> Saldo Punti : </font></b><font color="red">' . $row[0] . '</font>';
	   echo '<br>';
	   echo '<br>';
	   }
       ?>
<input name="read" type="submit" id="read" value="Inserisci"> 
</p>
</div>
</form> 
</p>
  </body>
</html>

manca la parte dell'autocompletamento... nel senso che la ho su un altra pagina e devo riuscire ad integrarla qua... posto anche quella?
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
praticamente io riempio tutti i campi X volte (dipende dall'utente di quanti campi ha bisogno...) una volta finito devo riempire il DB tramite submit...
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
non riesco a far inserire tutti i campi...
 
Ultima modifica di un moderatore:

Emix

Utente Attivo
15 Feb 2010
596
0
16
assolutamente, ci mancherebbe :D grazie della disponibilità...
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
Mi è venuto in mente un altro mini problema... ma qui forse bisognerebbe capire la logica... Facendo conto che quello che l'utente inserisca faccia riferimento ad una "transazione" e che tale transazione debba essere richiamata in qualasiasi momento.. Come si potrebbe risolvere latao Database? Io avevo pensato di fare due tabelle contraddistine.. In una mettevo i riferimenti della descrizione del prodotto preso e la quantità un id e un campo "transazione" nell'altra invece id, negozio,prezzo totale... Il campo transazione potremmo fare che è composto dalla data+id... o qualcosa del genere bho...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
due cose.
non capisco esattamente quello che vuoi fare. cerca di spiegarti meglio eventualmente con un esempio.
poi ricorda un problema => un post
 
Discussioni simili
Autore Titolo Forum Risposte Data
A [PHP] Ciclare array multidimensionale e inserire valori in DB PHP 2
M [PHP] Inserire array nel db PHP 6
G Inserire un array all'interno di una cella del database MySQL 6
JackIlPazzo Inserire array in più righe PHP 9
S Problema con inserire la select in un array PHP 2
C Inserire elementi array in una select Javascript 2
J Inserire array in db PHP 6
L Inserire Array in tabella mysql PHP 11
M Inserire una stringa in un array PHP 1
D Inserire link PHP 0
L PHPSpreadsheet inserire dati da file .xlsx/.xls su database PHP 2
P inserire due voci in un titolo post wp WordPress 1
R inserire video nel sito HTML e CSS 15
J Inserire blog wordpress in angular CMS (Content Management System) 0
A inserire variabile php colore in div html PHP 2
L inserire dati multi livello PHP 8
G Inserire una scritta Java 1
M Inserire variabile nella value di una hidden PHP 3
S Inserire foto in ogni cella di una tabella Javascript 0
G inserire dati automaticamente in mysql PHP 0
B Vorrei inserire una finestra con messaggio ad un history.back PHP 16
Shyson Inserire placeholder nel campo cerca PHP 5
M Lanciare alert se il codice fiscale è già presente nel db e lasciare la scelta di inserire all'utente PHP 42
atipika INSERIRE ICONE DOWNLOAD E STAMPA WORDPRESS WordPress 10
F Creare un set di date a seconda del frazionamento scelto da inserire in MySQL PHP 6
B inserire valori da una tabella a un altra mysql PHP 34
D [Javascript] inserire uno script in un file php Javascript 6
napuleone [HTML] type="file" inserire path di partenza HTML e CSS 4
Monital [Javascript] inserire dati estratti dal db in html fisso Javascript 1
R [WordPress] Inserire campi aggiuntivi ad un Submit Form già dato dal template (front-end) WordPress 0
M inserire i dati ottenuti da una jquery in una tabella già esistente jQuery 1
G Inserire "Leggi il resto dell'articolo" con link al post sul sito preso via RSS Email Marketing 0
M [PHP] Come inserire codice html in un ciclo while PHP 2
P [PHP] Inserire stringhe in input(text),memorizzarle e stamparle in file successivo PHP 0
J [Javascript] Inserire un caricamento con animazione prima dell'esecuzione di un'azione Javascript 1
Shyson [PHP] Inserire testo nel codice PHP 2
D Mailchimp - Possibile inserire doppia condizione per i triggers? Email Marketing 0
A [MS Access] Pulsante per inserire allegati in campo maschera MS Access 0
Shyson [HTML] Inserire nuovo font con @font-face HTML e CSS 5
Alex_70 Inserire photo in php PHP 0
D [Javascript] [HTML] Inserire slash dopo 3 numeri Javascript 5
F INSERIRE IN UN'UNICA CASELLA DI TESTO REPORT ACCESS I VALORI DELLA TABELLA DI UN'INTERA COLONNA MS Access 2
A [HTML] Come inserire google review stars nelle pagine del mio sito HTML e CSS 0
spider81man Connettersi ad un DB ed inserire dati con Javascript Javascript 3
spider81man [PHP] Inserire file .pdf in db PHP 6
P [WordPress] Inserire codice in pagina dinamica WordPress 0
andreas88 [HTML] come inserire 3 riquadri in un unico rigo (vedere img allegata) HTML e CSS 11
G [PHP] inserire risultato di una query in una tabella PHP 3
P [Javascript] Inserire una nuova condizione in una funzione Javascript 3
G [Guida MyBB 1.8] Inserire icone accanto alle sezioni CMS (Content Management System) 0

Discussioni simili