Ciao a tutti, avrei bisogno di voi per capire dove sbaglio, le ho provate tutte.... suppongo ci sia un sistema di gestione dei $_POST che continua a sfuggirmi...
Il codice che vi riporto sotto non dovrebbe fare nulla di complicato (scusate la formattazione ma non sono riuscita a incollarlo come molti di voi riescono a fare) :
all'inizio dello script ho enunciato

$id = $_POST["TxID"];
$change = $_POST['change'];
---------------------------------

$id = $_POST["TxID"] è semplicemente un input form che accetta una stringa (un indirizzo email)
cui a seguire c'è un controllo del formato del dato immesso con la funzione "controllaMail" e poi parte la query per la ricerca della mail nel database. Se la mail non è già contenuta (il codice l'ho omesso) la aggiunge semplicemente e il tutto si ferma. Se la mail invece viene trovata all'interno del database allora viene presentata a video con tutti suoi parametri (STATO, WANT_DELETE, ecc ecc che sono tutti dei controlli che a me servono e che possono essere impostati o =1 o =0 - attivo/disattivato). Dopodichè viene semplicemente chiesto se si vuol cambiare uno dei parametri dell'indirizzo in questione con un altro form "$change = $_POST['change']" - In pratica parte uno switch con 5 case a seconda della scelta e lo switch funziona perfettamente. Come si vede, nel case 4, (gli altri li implementerò se e quando capirò dove sta l'errore) chiedo di aggiornare una delle colonna del record della mail in questione. Purtroppo pero', a quel punto, il valore "$id = $_POST["TxID"];" si è perso e php non mi aggiorna il database perchè non trova più il record di partenza!!
Da notare che se allo stesso case 4 faccio partire questa query :
"$sqlquery = "insert into nl_mailing_list values ('', '$id','1','','','')";
il database viene perfettamente aggiunto un nuovo record con tutti i suoi campi tranne che per l'indirizzo mail di cui si è ormai persa la variabile.....
Chiedo scusa per la lunghezza, ma sono 10 giorni che lavoro su questa cosetta, sto cercando di imparare, ma davvero non ci salto fuori.....
Grazie a chiunque vorrà darmi una dritta
Alessandra



°°°°°°°°°°°°°°°°°°°°°°°° INIZIO CODICE INTERESSATO °°°°°°°°°°°°°°°°°°°°°°°°
<?php
if(isset($id)) {
if(controllaMail($id)) {
$sqlquery = "SELECT * FROM $table WHERE email = '$id' ";
$result = mysql_query($sqlquery) or die ("Query fallita: ".mysql_error());

if($result) {
if(mysql_num_rows($result) != 0) {
while
($row = mysql_fetch_row($result)) {?>
<div class="text-red"><?php echo "Indirizzo email gi&agrave; presente con i seguenti attributi:

";?>
<div class="text-mail"><?php printf("$row[1]
"); ?></div>
<?php
printf("STATO (attivato/disattivato): $row[2]
");
printf("WANT_DELETE (ha chiesto la cancellazione): $row[3]
");
printf("FAILURE (delivery failure): $row[4]
");
printf("SELF_REQUEST (ha chiesto l'iscrizione): $row[5]
");?>
</div>
<?php
}
echo "
Vuoi modificare uno o pi&ugrave; attributi dell'indirizzo email?";?>

<form name="change" method="post" action="">


Menu:

<select name="change">
<option value="0">*** Nessuna modifica ***</option>
<option value="1">STATO</option>
<option value="2">WANT_DELETE</option>
<option value="3">FAILURE</option>
<option value="4">SELF_REQUEST</option>
</select>
<input type="submit" name="Submit" value="Invia">
</p>
</form>
<?php
echo "
DEVI ANCORA EFFETTUARE UNA SCELTA";
echo('
');
echo('Change: ' .$change);
echo('
');
echo('Result: ' .$id);

mysql_free_result($result);

} else {
$id = trim($id);
$sqlquery = "insert into nl_mailing_list values ('', '$id','1','','','')";
$result = mysql_query($sqlquery) or die ("Query fallita: ".mysql_error()); ?>

<div class="text-green"><?php echo "L'indirizzo '$id' &egrave; stato aggiunto correttamente al database.";
echo "
Per una nuova ricerca inserire un nuovo indirizzo oppure andare su \"Nuovo controllo\""; ?>
</div>
<?php
}
return;
}
}
echo "
Prova a inserire un nuovo indirizzo.";
return;
}

if(isset($change)) {

switch ($change) {
case 0:
echo "Hai scelto: 0 cio&egrave; *** Nessuna modifica ***";
break;
case 1:
echo "Hai scelto 1. STATO dell'indirizzo mail &egrave; stato aggiornato";
break;
case 2:
echo "Hai scelto: 2 cio&egrave; WANT_DELETE";
break;
case 3:
echo "Hai scelto: 3 cio&egrave; FAILURE";
break;
case 4:
$sqlquery = "UPDATE nl_mailing_list SET self_request = 4 WHERE email = '$id' ";
$result = mysql_query($sqlquery) or die ("Query fallita: ".mysql_error());
echo "Hai scelto: 4 cio&egrave; SELF_REQUEST";
break;
}
}

?>