Column 'id' in field list is ambiguous

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>

inviato 7 anni fa
bruce1964
X 0 X

Devi cambiare

SELECT id,nome,costo

in

SELECT iscritti.id,nome,costo

 :bye:

P.S.: ho spostato il tuo messaggio in una nuova discussione perché, come da regolamento, una discussione può affrontare un solo argomento

risposto 7 anni fa
Gianni Tomasicchio
X 0 X

Grazie Gianni,

è incredibile, pensavo di aver già provato questa query e invece..........,

Mi scuso se ho involontariamente infranto il regolamento,

e d'ora in poi farò attenzione a formulare le mie domande in relazione agli argomenti trattati.

Ora mi si è presentato un altro problemino, ma prima di aprire un nuovo topic,

provo a studiarci un pò su.

Ciao e grazie ancora

risposto 7 anni fa
bruce1964
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda