Ciao Gianni,
ho creato una pagina che mi visualizza su un unica riga i dati di 2 tabelle,
ed ho inserito un checkbox per selezionare i record da eliminare.
Perchè mi funziona se seleziono solo 1 record, mentre mi visualizza un mess di errore se ne spunto più di uno?
Mi sai dire dove sbaglio? Grazie in anticipo
<?php
// richiamo il file di configurazione
require 'config.php';
// richiamo lo script responsabile della connessione a MySQL
require 'connect.php';
if($_POST)
{
$ids = isset($_POST['id']) ? $_POST['id'] : array();
elimina_record($ids);
}
elseif(isset($_GET['id']))
{
elimina_record(array($_GET['id']));
}
else
mostra_lista();
function mostra_lista()
{
// mostro un eventuale messaggio
if(isset($_GET['msg']))
echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
// preparo la query
$query ="SELECT anagrafica.id,nome,costo,giorno,mese,anno
FROM tesseramento,anagrafica WHERE (tesseramento.id_tessera=anagrafica.id)";
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
$giorno_arr = array('giorno','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
$mese_arr = array('mese','gennaio','febbraio','marzo','aprile','maggio','giugno','luglio','agosto','settembre','ottobre','novembre','dicembre');
$anno_arr = array('anno','2008','2009','2010','2011','2012');
echo '
<table border="1">
<tr>
<form name="form1" method="post" action="">
<th> </th>
<th>NOME</th>
<th>
DATA di ISCRIZIONE
</th>
<th>COSTO</th>
</tr>';
while ($row = mysql_fetch_assoc($result))
{
$nome = htmlentities($row['nome']);
$costo = htmlentities($row['costo']);
$giorno = $giorno_arr[$row['giorno']];
$mese = $mese_arr[$row['mese']];
$anno = $anno_arr[$row['anno']];
// preparo il link per la modifica dei dati del record
$link = $_SERVER['PHP_SELF'].'?id=' . $row['id'];
echo "<tr>
<td><input name=\"id[]\" type=\"checkbox\" value=\"$row[id]\" /></td>
<td>$nome</td>
<td>$giorno
$mese
$anno</td>
<td>$costo</td>
</tr>";
}
echo '</table>
<br />
<input type="submit" name="Submit" value="Elimina record selezionati" />
</form>';
// libero la memoria di PHP occupata dai record estratti con la SELECT
mysql_free_result($result);
// 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 query2
$query2 = "DELETE FROM anagrafica WHERE id=$ids";
// invio la query2
$result2 = mysql_query($query2);
// controllo l'esito
if (!$result2) {
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);
}
?>
<p>
<br /><p><br /><p><br /><p><br /><p><br /><p><br /><p><br /><p><br />
<a href="inserimento_iscrizioni.php"><img src="insrimentoiscritti.jpg" width="207" height="33" /></a>