Inserimento multiplo

Trapano

Utente Attivo
27 Set 2012
238
0
16
45
Ciao a tutti.
Ho un nuovo quesito da proporvi.
Ho un modulo di inserimento dati su un db.
Compilo gli imput e invio. Tutto ok.
Ma se avessi 30 oggetti tutti uguali da inserire, sarebbe possibile inserire nella query, inserisci 30 volte o n volte? Con un clic?
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
45
Dimenticavo: uso php!
È stasera posto lo script...perché ora sono in giro ...;-)
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
45
ecco la pagina:
PHP:
<table align='center' bgcolor='yellow' border='1' height='' width='900' cellpadding='0' cellspacing='0'>
<p align="center"><font color="black" size="5"><b>Inserisci un nuovo oggetto</b></font>
<form action='oggetti.php?reg=1' method='POST'>
<tr>
<td align='center' width=''><b>Descrizione</b></td>
<td align='center' width=''><b>Prezzo</b></td>
<td align='center' width=''><b>Quantita'</b></td>
<td align='center' width=''><b>%</b></td>
<td align='center' width=''><b>Codice venditore</b></td>
<td align='center' width=''><b>Stato</b></td>
<td align='center' width=''><b>Nome immagine</b></td>
<td align='center' width=''><b></b></td>
</tr>
 <td align='center'width=''><input type='text' name='descrizione'></td>
 <td align='center'width=''><input type='text' name='prezzo'></td>
 <td align='center'width=''><input type='text' name='quantita'></td>
 <td align='center' width=''><input type='text' name='percento'></td>
 <td align='center' width=''><input type='text' name='id_venditore'></td>
 <td align='center' width=''><input type='text' name='venduto' value="in vendita" readonly="readonly"></td>
 <td align='center' width=''><input type='text' name='link'></td>
 <td align='center' width=''><input type='submit' value='Procedi'></td><br>
</form></font></p>
 </table><br>


<?
include_once ("config.php");  
include_once ("connect.php");  

$reg = $_GET['reg'];

if ( $reg == 1 ) {

// recuperiao tutti i dati inviati via post
$id = $_POST['id'];
$data = date('d/m/y');
$descrizione = $_POST['descrizione'];
$prezzo = $_POST['prezzo'];
$quantita = $_POST['quantita'];
$percento = $_POST['percento'];
$provvigione = ($prezzo*$quantita) *$percento/100;
$rimborso = ($prezzo*$quantita) - $provvigione;
$id_venditore = $_POST['id_venditore'];
$venduto = $_POST['venduto'];
$data_vendita = $_POST['data_vendita'];
$link = $_POST['link'];


mysql_query("INSERT INTO oggetti
             ( id , data , descrizione , prezzo , quantita , percento , provvigione , rimborso , id_venditore , venduto , data_vendita , link )
             VALUES 
             ( '$id', '$data' , '$descrizione', '$prezzo', '$quantita', '$percento', '$provvigione', '$rimborso', '$id_venditore', '$venduto', '$data_vendita', 'link/$link' )") OR DIE(mysql_error());
$result = mysql_query ("SELECT * FROM oggetti WHERE data > 31/10/12");
$num=mysql_numrows($result);


while($row = mysql_fetch_array( $result )) { 

    $id=$row['id']; 
        
}  


echo "Record inserito <br>";
echo "<td align='center'>id $id</td>/<td align='center'>data $data</td>/<td align='center'> $descrizione</td>/<td align='center'> prezzo $prezzo</td>/<td align='center'>quantita' $quantita</td>/<td align='center'>venditore $id_venditore</td><br>";
echo "<a href='javascript:history.back()'><blink>Per inserire un oggetto uguale clicca qui</blink></a>";

} 

?>
</body>
</html>
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
45
Come metodo provvisorio nelle ultime righe ho messo la possibilità di tornare indietro.... ma funziona solo con safari.. e poi non è un granchè come soluzione... preferirei un campo dove inserisco un numero e ripete n volte....
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
concordo con Borgo: jquery non c'entra
Io inserirei un input/select in più: quante volte vuoi inserire questo oggetto?
poi con un ciclo php esegui le query
PHP:
for($i=0; $i < $_POST['nvolte']; $i++) {

// query

}

Sposto in php
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
45
così?
PHP:
 <html>
<head>
<title>Modulo di inserimento nuovo oggetto</title>
</head>
<body bgcolor="#42FFF9">

<table align='center' bgcolor='yellow' border='1' height='' width='900' cellpadding='0' cellspacing='0'>
<p align="center"><font color="black" size="5"><b>Inserisci un nuovo oggetto</b></font>
<form action='oggetti.php?reg=1' method='POST'>
<tr>
<td align='center' width=''><b>Descrizione</b></td>
<td align='center' width=''><b>Prezzo</b></td>
<td align='center' width=''><b>Quantita'</b></td>
<td align='center' width=''><b>%</b></td>
<td align='center' width=''><b>Codice venditore</b></td>
<td align='center' width=''><b>Stato</b></td>
<td align='center' width=''><b>Nome immagine</b></td>
<td align='center' width=''><b>Quanti oggetti?</b></td>
<td align='center' width=''><b></b></td>
</tr>
 <td align='center'width=''><input type='text' name='descrizione'></td>
 <td align='center'width=''><input type='text' name='prezzo'></td>
 <td align='center'width=''><input type='text' name='quantita'></td>
 <td align='center' width=''><input type='text' name='percento'></td>
 <td align='center' width=''><input type='text' name='id_venditore'></td>
 <td align='center' width=''><input type='text' name='venduto' value="in vendita" readonly="readonly"></td>
 <td align='center' width=''><input type='text' name='link'></td>
 <td align='center' width=''><input type='text' name='nvolte' value='1'></td>
 <td align='center' width=''><input type='submit' value='Procedi'></td><br>
</form></font></p>
 </table><br>


<?
include_once ("config.php");  
include_once ("connect.php");  

$reg = $_GET['reg'];

if ( $reg == 1 ) {

// recuperiao tutti i dati inviati via post
$id = $_POST['id'];
$data = date('d/m/y');
$descrizione = $_POST['descrizione'];
$prezzo = $_POST['prezzo'];
$quantita = $_POST['quantita'];
$percento = $_POST['percento'];
$provvigione = ($prezzo*$quantita) *$percento/100;
$rimborso = ($prezzo*$quantita) - $provvigione;
$id_venditore = $_POST['id_venditore'];
$venduto = $_POST['venduto'];
$data_vendita = $_POST['data_vendita'];
$link = $_POST['link'];


mysql_query("INSERT INTO oggetti
             ( id , data , descrizione , prezzo , quantita , percento , provvigione , rimborso , id_venditore , venduto , data_vendita , link )
             VALUES 
             ( '$id', '$data' , '$descrizione', '$prezzo', '$quantita', '$percento', '$provvigione', '$rimborso', '$id_venditore', '$venduto', '$data_vendita', 'link/$link' )") OR DIE(mysql_error());
$result = mysql_query ("SELECT * FROM oggetti WHERE data > 31/10/12");
$num=mysql_numrows($result);

for($i=0; $i < $_POST['nvolte']; $i++) { 

// query 

} 

while($row = mysql_fetch_array( $result )) { 

    $id=$row['id']; 
        
}  



echo "Record inserito <br>";
echo "<td align='center'>id $id</td>/<td align='center'>data $data</td>/<td align='center'> $descrizione</td>/<td align='center'> prezzo $prezzo</td>/<td align='center'>quantita' $quantita</td>/<td align='center'>venditore $id_venditore</td><br>";
echo "<a href='javascript:history.back()'><blink>Per inserire un oggetto uguale clicca qui</blink></a>";

} 

?>
</body>
</html>

Che manca?
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
45
Posto il lavoro che funziona...
PHP:
 <html>
<head>
<title>Modulo di inserimento nuovo oggetto</title>
</head>
<?php
include 'body.php';
?>
<table align='center' bgcolor='yellow' border='1' height='' width='900' cellpadding='0' cellspacing='0'>
<p align="center"><font color="black" size="5"><b>Inserisci un nuovo oggetto</b></font>
<form action='oggetti.php?reg=1' method='POST'>
<tr>
<td align='center' width=''><b>Descrizione</b></td>
<td align='center' width=''><b>Prezzo</b></td>
<td align='center' width=''><b>Quantita'</b></td>
<td align='center' width=''><b>%</b></td>
<td align='center' width=''><b>Codice venditore</b></td>
<td align='center' width=''><b>Stato</b></td>
<td align='center' width=''><b>Nome immagine</b></td>
<td align='center' width=''><b>Quanti oggetti?</b></td>
<td align='center' width=''><b></b></td>
</tr>
 <td align='center'width=''><input type='text' name='descrizione'></td>
 <td align='center'width=''><input type='text' name='prezzo'></td>
 <td align='center'width=''><input type='text' name='quantita'></td>
 <td align='center' width=''><input type='text' name='percento'></td>
 <td align='center' width=''><input type='text' name='id_venditore'></td>
 <td align='center' width=''><input type='text' name='venduto' value="in vendita" readonly="readonly"></td>
 <td align='center' width=''><input type='text' name='link'></td>
 <td align='center' width=''><input type='text' name='nvolte' value='1'></td>
 <td align='center' width=''><input type='submit' value='Procedi'></td><br>
</form></font></p>
 </table><br>


<?
include_once ("config.php");  
include_once ("connect.php");  

$reg = $_GET['reg'];

if ( $reg == 1 ) {

// recuperiao tutti i dati inviati via post
$id = $_POST['id'];
$data = date('d/m/y');
$descrizione = $_POST['descrizione'];
$prezzo = $_POST['prezzo'];
$quantita = $_POST['quantita'];
$percento = $_POST['percento'];
$provvigione = ($prezzo*$quantita) *$percento/100;
$rimborso = ($prezzo*$quantita) - $provvigione;
$id_venditore = $_POST['id_venditore'];
$venduto = $_POST['venduto'];
$data_vendita = $_POST['data_vendita'];
$link = $_POST['link'];

for($i=0; $i < $_POST['nvolte']; $i++) { 
	
mysql_query("INSERT INTO oggetti
             ( id , data , descrizione , prezzo , quantita , percento , provvigione , rimborso , id_venditore , venduto , data_vendita , link )
             VALUES 
             ( '$id', '$data' , '$descrizione', '$prezzo', '$quantita', '$percento', '$provvigione', '$rimborso', '$id_venditore', '$venduto', '$data_vendita', 'link/$link' )") OR DIE(mysql_error());
$result = mysql_query ("SELECT * FROM oggetti WHERE data > 31/10/12");
$num=mysql_numrows($result);



} 

while($row = mysql_fetch_array( $result )) { 

    $id=$row['id']; 
        
}  



echo "Record inserito <br>";
echo "<td align='center'>id $id</td>/<td align='center'>data $data</td>/<td align='center'> $descrizione</td>/<td align='center'> prezzo $prezzo</td>/<td align='center'>quantita' $quantita</td>/<td align='center'>venditore $id_venditore</td><br>";


} 

?>
</body>
</html>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
secondo me questa dovresti toglierla dal ciclo dove c'è anche l'INSERT
PHP:
$result = mysql_query ("SELECT * FROM oggetti WHERE data > 31/10/12");
$num=mysql_numrows($result);
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
si dopo il ciclo altrimenti la esegui piu volte per niente
ma se uno nel campo "nvolte" ti scrive 1000000000000000000000 ??
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
anche il valore di una select puo essere facilmente manipolato
ti conviene cmq mettere un controllo in php
PHP:
if((int) $_POST['nvolte'] > 20) {
        // errore limite superato
}
 

Trapano

Utente Attivo
27 Set 2012
238
0
16
45
Bellissimo... Sei il numero uno!
Però mi incuriosisce il fatto del manipolato... Come si può manipolarlo?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
potrei semplicemente creare un form che richiama la tua pagina
PHP:
<form action="tuapagina.php" method="post">
            <input type="hidden" name="nvolte" value="1000000000000"/>
            e tutti gli altri campi
        </form>
o usare delle librerie tipo curl
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ho notato ora che non fai nessun controllo su nessun campo
un malintenzionato potrebbe farci quello che vuole con il tuo db
la struttura piu o meno dovrebbe essere cosi
PHP:
<html>
    <head>
        <title>Titolo</title>
    </head>
    <body>
        <?php
        include_once ("config.php");
        include_once ("connect.php");
        // se hanno premuto il pulsante procedi : nota che gli ho aggiunto il name
        if (isset($_POST['procedi']) && $_POST['procedi'] == "Procedi") {
            // se il campo nvolte è minore di venti vai avanti
            if ((int) $_POST['nvolte'] < 20) {

                // qui sarebbe bene aggiungere dei controlli anche sugli altri campi
                
                // recuperiao tutti i dati inviati via post
                $id = $_POST['id'];
                $data = date('d/m/y');
                $descrizione = $_POST['descrizione'];
                $prezzo = $_POST['prezzo'];
                $quantita = $_POST['quantita'];
                $percento = $_POST['percento'];
                $provvigione = ($prezzo * $quantita) * $percento / 100;
                $rimborso = ($prezzo * $quantita) - $provvigione;
                $id_venditore = $_POST['id_venditore'];
                $venduto = $_POST['venduto'];
                $data_vendita = $_POST['data_vendita'];
                $link = $_POST['link'];


                mysql_query("INSERT INTO oggetti
             ( id , data , descrizione , prezzo , quantita , percento , provvigione , rimborso , id_venditore , venduto , data_vendita , link )
             VALUES 
             ( '$id', '$data' , '$descrizione', '$prezzo', '$quantita', '$percento', '$provvigione', '$rimborso', '$id_venditore', '$venduto', '$data_vendita', 'link/$link' )") OR DIE(mysql_error());
                $result = mysql_query("SELECT * FROM oggetti WHERE data > 31/10/12");
                $num = mysql_numrows($result);


                while ($row = mysql_fetch_array($result)) {

                    $id = $row['id'];
                }

                // la sintassi della seguente tabella non è corretta
                echo "Record inserito <br>";
                echo "<td align='center'>id $id</td>/<td align='center'>data $data</td>/<td align='center'> $descrizione</td>/<td align='center'> prezzo $prezzo</td>/<td align='center'>quantita' $quantita</td>/<td align='center'>venditore $id_venditore</td><br>";
                echo "<a href='javascript:history.back()'><blink>Per inserire un oggetto uguale clicca qui</blink></a>";
            } else {
                echo "<p>Limite massimo oggetti superato</p>";
            }
        }
        ?>
        <p align="center"><font color="black" size="5"><b>Inserisci un nuovo oggetto</b></font></p>
        <table align='center' bgcolor='yellow' border='1' height='' width='900' cellpadding='0' cellspacing='0'>

            <form action='oggetti.php?reg=1' method='POST'>
                <tr>
                    <td align='center' width=''><b>Descrizione</b></td>
                    <td align='center' width=''><b>Prezzo</b></td>
                    <td align='center' width=''><b>Quantita'</b></td>
                    <td align='center' width=''><b>%</b></td>
                    <td align='center' width=''><b>Codice venditore</b></td>
                    <td align='center' width=''><b>Stato</b></td>
                    <td align='center' width=''><b>Nome immagine</b></td>
                    <td align='center' width=''><b></b></td>
                </tr>
               <tr>
                <td align='center'width=''><input type='text' name='descrizione'></td>
                <td align='center'width=''><input type='text' name='prezzo'></td>
                <td align='center'width=''><input type='text' name='quantita'></td>
                <td align='center' width=''><input type='text' name='percento'></td>
                <td align='center' width=''><input type='text' name='id_venditore'></td>
                <td align='center' width=''><input type='text' name='venduto' value="in vendita" readonly="readonly"></td>
                <td align='center' width=''><input type='text' name='link'></td>
                <td align='center' width=''><input type='submit' name="procedi" value='Procedi'></td>
            </tr>
            </form>
        </table>
    </body>
</html>
 
Ultima modifica:

Trapano

Utente Attivo
27 Set 2012
238
0
16
45
In questo modo funziona.
PHP:
<?php
include 'conf.php';
session_start();
if ($_SESSION['username']==$usern) ;
else{ 
header("Location: login.htm");
}

 { ?>
 <html>
<head>
<title>Modulo di inserimento nuovo oggetto</title>
</head>
<?php
include 'body.php';
?>
<table align='center' bgcolor='yellow' border='1' height='' width='900' cellpadding='0' cellspacing='0'>
<p align="center"><font color="black" size="5"><b>Inserisci un nuovo oggetto</b></font>
<form action='oggetti.php?reg=1' method='POST'>
<tr>
<td align='center' width=''><b>Descrizione</b></td>
<td align='center' width=''><b>Prezzo</b></td>
<td align='center' width=''><b>Quantita'</b></td>
<td align='center' width=''><b>%</b></td>
<td align='center' width=''><b>Codice venditore</b></td>
<td align='center' width=''><b>Stato</b></td>
<td align='center' width=''><b>Nome immagine</b></td>
<td align='center' width=''><b>Moltiplica record</b></td>
<td align='center' width=''><b></b></td>
</tr>
 <td align='center'width=''><input type='text' name='descrizione'></td>
 <td align='center'width=''><input type='text' name='prezzo'></td>
 <td align='center'width=''><input type='text' name='quantita'></td>
 <td align='center' width=''><input type='text' name='percento'></td>
 <td align='center' width=''><input type='text' name='id_venditore'></td>
 <td align='center' width=''><input type='text' name='venduto' value="in vendita" readonly="readonly"></td>
 <td align='center' width=''><input type='text' name='link'></td>
 <td align='center' width=''><input type='text' name='nvolte' value='1'></td>
 <td align='center' width=''><input type='submit' value='Procedi'></td><br>
</form></font></p>
 </table><br>


<?
include_once ("config.php");  
include_once ("connect.php");  


 if ((int) $_POST['nvolte'] < 10) {
 	
 	
$reg = $_GET['reg'];

if ( $reg == 1 ) {

// recuperiao tutti i dati inviati via post
$id = $_POST['id'];
$data = date('d/m/y');
$descrizione = $_POST['descrizione'];
$prezzo = $_POST['prezzo'];
$quantita = $_POST['quantita'];
$percento = $_POST['percento'];
$provvigione = ($prezzo*$quantita) *$percento/100;
$rimborso = ($prezzo*$quantita) - $provvigione;
$id_venditore = $_POST['id_venditore'];
$venduto = $_POST['venduto'];
$data_vendita = $_POST['data_vendita'];
$link = $_POST['link'];

for($i=0; $i < $_POST['nvolte']; $i++) { 
	
mysql_query("INSERT INTO oggetti
             ( id , data , descrizione , prezzo , quantita , percento , provvigione , rimborso , id_venditore , venduto , data_vendita , link )
             VALUES 
             ( '$id', '$data' , '$descrizione', '$prezzo', '$quantita', '$percento', '$provvigione', '$rimborso', '$id_venditore', '$venduto', '$data_vendita', 'link/$link' )") OR DIE(mysql_error());
$result = mysql_query ("SELECT * FROM oggetti WHERE data > 31/10/12");
$num=mysql_numrows($result);


}
} 

while($row = mysql_fetch_array( $result )) { 

    $id=$row['id']; 
        
}  



echo "Record inserito <br>";
echo "<td align='center'>id $id</td>/<td align='center'>data $data</td>/<td align='center'> $descrizione</td>/<td align='center'> prezzo $prezzo</td>/<td align='center'>quantita' $quantita</td>/<td align='center'>venditore $id_venditore</td><br>";


} else {
                echo "<p>Limite massimo di 10 oggetti superato</p>";
            }

?>
</body>
</html>
 <? } ?>

Ho tolto if (isset($_POST['procedi']) && $_POST['procedi'] == "Procedi") {
// se il campo nvolte è minore di venti vai avanti
perchè credo che per colpa sua non mi caricava nessun record...

Come aggiungo sicurezza agli altri input?
Sempre in questo modo? ----> "if ((int)"
 
Discussioni simili
Autore Titolo Forum Risposte Data
S Inserimento multiplo non richiesto PHP 2
gandalf1959 [MySQL] Inserimento multiplo da form multirighe MySQL 22
S Inserimento multiplo immagini PHP 18
A form con inserimento multiplo PHP 4
G Inserimento multiplo Classic ASP 7
P Problemi inserimento dati con checkbox multiplo PHP 17
M Inserimento multiplo di valori nei rispettivi record sql PHP 5
P Query Mysql per inserimento multiplo MySQL 4
B Rotazione banner temporizzati - inserimento multiplo nella stessa pagina html Javascript 7
L Inserimento multiplo di 2 o piu record Classic ASP 5
L inserimento form dati multipli ? PHP 0
G Appicazione HTML per inserimento dai in Database Access Microsoft HTML e CSS 0
J Form inserimento dati in database Ajax 1
D modificare questo codice per inserimento in text e non in tabella jQuery 1
R [C#] Automatizzare un inserimento di un Post su un Gruppo Facebook .NET Framework 0
M Aiuto con inserimento immagini WordPress 6
elpirata Impedire inserimento data di oggi e date passate jQuery 39
A Inserimento dati nel database tramite form + altre operazioni PHP 18
W Email conferma inserimento Classic ASP 0
P inserimento icone social tramite html HTML e CSS 1
L form multipla php sql,errore in inserimento MySQL 0
Alex_70 Inserimento dati a cascata PHP 204
T Da xsd a xml ed inserimento dati in excel XML 0
M Problema inserimento parole con apostrofo nel db PHP 5
C [RISOLTO]Inserimento variabile php in input html PHP 20
P Access Inserimento data. MS Access 4
L Inserimento dettagli in una maglia Photoshop 2
S [PHP] email con inserimento dati nel database PHP 23
beatle [Photoshop] problema inserimento immagini Photoshop 1
G [Javascript] Errore inserimento dati Backend Node.js e workbench Javascript 1
B [PHP] Creare PDF dopo inserimento dati form PHP 4
C [PHP] Form con Inserimento dati dalla maschera e un menù a discesa che prende i dati dal db PHP 1
C [PHP] Form inserimento più menù a discesa PHP 9
M [PHP] Problemi su inserimento array nel db PHP 7
gandalf1959 [PHP] Inserimento di più righe non funziona come mi aspetto... PHP 2
E Inserimento dati da PHP in tabella MySQL PHP 5
E Form inserimento dati con JavaScript Javascript 0
D [MS Access] problemi con inserimento campo in una maschera MS Access 6
G inserimento csv in tabella mysql; problema con struttura PHP 11
M [Joomla] Inserimento wow.js in template Joomla 4
K [PHP] Inserimento dati database con postgres PHP 2
K [PHP + MYSQL ] Inserimento dati in database da form dinamico PHP 13
A [PHP] Inserimento url dinamici in pagina html PHP 3
spider81man [PHP] Alert Box per confermare Inserimento o Cancellazione dato. PHP 4
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
M Inserimento dati checkbox multipli in db da ajax a php PHP 1
S [PHP] inserimento su DB da tabella PHP 29
P [PHP] Problema inserimento nuove chiavi in array PHP 2
paloppa Inserimento data su database MYSQL PHP 2
webimage [PHP] Non inserimento in tabella PHP 19

Discussioni simili