E' molto tardi.
Questo e' lo script che funziona. A differenza dell'ultimo ho aggiunto una seconda richiesta WHERE alla prima SQL cosi' da identificare univocamente il record (i records) che mi servono.
Il controllo che faccio per il valore della variabile $checked e' quindi vincolato alla presenza di un certo keyid in corrispondenza del mio $id.
La spiegazione di if($id) arriva....
Codice PHP:
<?php
# Scrivo le parole chiave
$sqlKL = "SELECT * FROM ". TABLE_KEYLIST ."";
$r_kl = mysql_query($sqlKL, $db);
while ($tbl_kl = mysql_fetch_array($r_kl)) {
if($id){
# Chiamo le parole chiave
$sqlKW = "SELECT * FROM ". TABLE_KEYWHO ." WHERE id=$id AND keyid=".$tbl_kl['keyid']."";
$r_kw = mysql_query($sqlKW, $db);
$tbl_kw = mysql_fetch_array($r_kw);
if ($tbl_kw['keyid']) {
$checked = "checked='checked'";
}else{
$checked = "";
}
}
?>
<div>
<input type="checkbox" name="keyid[]" value="<?=$tbl_kl['keyid']?>" <?=$checked?>/>[b]<?=$tbl_kl['keyname']?> <?=$tbl_kl['keyid']?>[/b]
</div>
<?php
}
?>