Sn disperato!
Devo completare questa tesina entro 20 giorni!
Non riesco a capire il perchè del non funzionamento di questa checkbox! (Premetto che se qualcuno di voi ne ha una funzionante da riadattare va benissimo comunque!)
Mi viene correttamente caricata la pagina con la checkbox e con i corretti record presenti nella tabella Fornitore(Cod_Fornitore, Ragione_Sociale,Indirizzo, Telefono).
Se non spunto nulla esce correttamente il messaggio "Nessun record selezionato".
Se spunto un record per effettuarne la cancellazione, però, mi dice "Numero record cancellati :0"
AIUTO!!!
Codice PHP:
<?php
$DBhost = "localhost";
$DBuser = "root";
$DBpass = "";
$DBName = "biblioteca";
// richiamo lo script responsabile della connessione a MySQL
$db = @mysql_connect("$DBhost", "$DBuser", "$DBpass")
or die ("Connessione al db impossibile...");
@mysql_select_db($DBName, $db)
or die ("Impossibile selezionare il db...");
if($_POST)
{
$ids = isset($_POST['Cod_Fornitore']) ? $_POST['Cod_Fornitore'] : array();
elimina_record($ids);
}
elseif(isset($_GET['Cod_Fornitore']))
{
elimina_record(array($_GET['Cod_Fornitore']));
}
else
mostra_lista();
function mostra_lista()
{
// mostro un eventuale messaggio
if(isset($_GET['msg']))
echo '[b]'.htmlentities($_GET['msg']).'[/b]
';
$table = "fornitore";
// preparo la query
$query = "SELECT * FROM fornitore";
// invio la query
$result = mysql_query($query) or die (mysql_error());
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
echo '
<form name="form1" method="post" action="">
<table border="1">
<tr>
<th> </th>
<th>Fornitore</th><th>Ragione Sociale</th><th>Indirizzo</th><th>Telefono</th>
<th> </th>
</tr>';
while ($row = mysql_fetch_array($result))
{
$nome = htmlentities($row['Cod_Fornitore']);
$ragione= htmlentities($row['Ragione_Sociale']);
$indirizzo= htmlentities($row['Indirizzo']);
$tel= htmlentities($row['Telefono']);
// preparo il link per la modifica dei dati del record
$link = $_SERVER['PHP_SELF'].'?Cod_Fornitore=' . $row['Cod_Fornitore'];
echo "<tr>
<td><input name=\"Cod_Fornitore[]\" type=\"checkbox\" value=\"$row[Cod_Fornitore]\" /></td>
<td>$nome</td><td>$ragione</td><td>$indirizzo</td><td>$tel</td>
<td><a href=\"$link\">elimina</a></td>
</tr>";
}
echo '</table>
<input type="submit" name="Submit" value="Elimina record selezionati" />
</form>';
// chiudo la connessione a MySQL
mysql_close();
}
function elimina_record($ids)
{
// verifico che almeno un id sia stato selezionato
if(count($ids) < 1)
{
$messaggio = urlencode("Nessun record selezionato!");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
exit;
}
// per precauzione converto gli ID in interi
$ids = array_map('intval',$ids);
// creo una lista di ID per la query
$ids = implode(',',$ids);
// preparo la query
$query = "DELETE FROM fornitore WHERE Cod_Fornitore IN ($ids)";
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
// conto il numero di record cancellati
$num_record = mysql_affected_rows();
// chiudo la connessione a MySQL
mysql_close();
$messaggio = urlencode("Numero record cancellati: $num_record");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
}
?>