PDA

View Full Version : [php mysql] inseert array


zebmckey
10-01-2019, 09:51
Buongiorno ho bisogno di un'aiuto su un insert da array. mi spiego ho questa pagina da cui invio 3 dati ad un'altra pagina. Questa è la pagina

<?php
require_once '../conf/conf.php';
$con = new MySQLi(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if($con==true)
{
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../conf/css/style.css" />
<title>Protale Servizi</title>
</head>

<body>
<div id="container">
<div id="header">
<h1>Inserimento<span class="off">&nbsp;&nbsp </span>Patenti</h1>
</div>
<tbody>
<form method="POST" action="test.php" >
<table class="blueTable" align=center>
<tr>
<td>Inserisci i dati relativi al personale</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>Utente</td>
<td><select name="user[]">
<option value=''>Selezione personale</option>
<?php
$data = "SELECT `idpersinsp`,`cognome`, `nome`
FROM `utenze`.`persg`ORDER BY `persg`.`idpersinsp`;";
$result = mysqli_query($con,$data) or die("Error:
".mysqli_error($con));
while($row = mysqli_fetch_array($result))
{
echo "<option value='" . $row['idpersinsp'] . "'>" .
row['cognome'] ."&nbsp;&nbsp;" . $row['nome'] ."</option>";
}
?>
</select> </td></tr>

<tr>
<td>Patenti</td>
<table>
<tr>
<th>Seleziona</th>
<th>Modello</th>
<th>Abilitazione</th>
</tr>
<?php
$dati = "SELECT `IdPatenti`,`Modello`, `Abilitazione`
FROM `utenze`.`tipo_patenti` ORDER BY `tipo_patenti`.`IdPatenti`;";
$result = mysqli_query($con,$dati) or die("Error: ".mysqli_error($con));
while($row = mysqli_fetch_array($result))
{
?>
<tr>
<td><input type="checkbox" name="patente[]" value="<?php echo $row["IdPatenti"];?>"></td>
<td><?php echo $modello=$row["Modello"];?></td>
<td><?php echo $abilitazione=$row["Abilitazione"];?></td>
</tr>
<?php
}
?>
</table>
</tr>
</tr>
<tr>
<td>Data Sacdenza</td>
<td><input type="date" name="data_scad"></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Inserisci"></td>
</tr>
</form>
</table>
</table>
</tbody>
</div>
</div>
</body>
</html>
<?php
}
mysqli_close($con);
?>

Adesso nella pagina test vado a prendere gli input e li trasformo in variabili.
Quelle variabili le inserisco nella query insert, solo che dovrei inserire tanti valori quanti dati ho nell'array.
il database ha 3 tabelle:

tabella 1:
idpersinsp - cognome - nome;
tabella 2
IdPatenti - modello - abilitazioni;
tabella 3
ID - idpersinso -IdPatenti - data_scadenza;

il file test.php

<?php
session_start ();
require_once '../conf/conf.php';
$con = new MySQLi(DB_HOST, DB_USER, DB_PASS, DB_NAME);

$user = mysqli_real_escape_string($con,$_POST['user']);
if(isset($con,$_POST['patente']))
$patente = implode($_POST['patente'],',');
$data_scad = mysqli_real_escape_string($con, $_POST['data_scad']);

#############################
# INSERIMENTO PATENTI #
#############################
$query = "INSERT INTO `utenze`.`patenti` (`id_patenti`, `idpersinsp`, `IdPatenti`, `data_scadenza` )
VALUES ('', '$user', '$patente', '$data_scad');";
if (!mysqli_query($con,$query))
{
die('Error: ' . mysqli_error($con));
}
echo "1 nuovo record è stato aggiunto!";
sleep(5);
echo "<script language='javascript' type='text/javascript'> location.href='ins_patenti.php' </script>";
mysqli_close($con);
?>

Chiaramente non funziona perche non so come gestire $patente .....
potete aiutarmi? grazie a tutti

zebmckey
10-01-2019, 17:00
Trovato la soluzione !!! per chi ne avesse bisogno ho risolto in questo modo con un ciclo for:

<?php
session_start ();
require_once '../conf/conf.php';
$con = new MySQLi(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if($_POST)
{
if(isset($con,$_POST['user']))
$user = ($_POST['user']);
else
$user = 'Nessun valore selezionato';
if(isset($con,$_POST['data_scad']))
$data_scad = ($_POST['data_scad']);
else
$data_scad = 'Nessun valore selezionato';
if(isset($con,$_POST['patente']))
$patente = implode($_POST['patente'],',');
$cnt = explode(",",$patente);
$count = count ($cnt);
for ($i = 0; $i < "$count"; $i++)
{
$query = "INSERT INTO `utenze`.`patenti` (`id_patenti`, `idpersinsp`, `IdPatenti`, `data_scadenza` )
VALUES ('', '$user', '$cnt[$i]', '$data_scad');";
if (!mysqli_query($con,$query))
{
die('Error: ' . mysqli_error($con));
}
}
}
echo " $count records aggiunti!";
sleep(5);
echo "<script language='javascript' type='text/javascript'> location.href='ins_patenti.php' </script>";
mysqli_close($con);
?>