Ciao Gianni, ho fatto come mi hai detto ed infatti funziona, ora l'id chiave esterna nella tabella abbonamento si autoincrementa nella stessa proporzione degli id inseriti in iscritti, il problema ora è un'altro........
nella pagina che mi visualizza i risultati avevo inserito un form per l'eliminazione dei record, e quando dò il visualizza mi esce un messaggio di errore che mi dice:
Errore nella query SELECT id,nome,costo FROM abbonamento,iscritti WHERE (abbonamento.id_tessera=iscritti.id) AND (id_tessera>0): Column 'id' in field list is ambiguous.
ad intuito mi sembra di aver capito che vi è un conflitto per l'id ripetuto, se ti riporto lo script mi dici dove sbaglio e come posso risolvere questo problema?
Grazie in anticipo e scusa il disturbo
<?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 id,nome,costo
FROM abbonamento,iscritti WHERE (abbonamento.id_tessera=iscritti.id) AND (id_tessera>0)";
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
echo '
<table border="1">
<tr>
<form name="form1" method="post" action="">
<th> </th>
<th>NOME</th>
<th>COSTO</th>
</tr>';
while ($row = mysql_fetch_assoc($result))
{
$nome = htmlentities($row['nome']);
$costo = htmlentities($row['costo']);
// 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>$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 iscritti,abbonamento WHERE id IN ($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>