Allora, invece di
$query = @mysql_query ($sql) or die(mysql_error());
scrivi
echo $sql.'<br />';
poi esegui a mano direttamente sul db (con phpmyadmin per esempio) le 2 query che ti stampa e vedi cosa succede.
Allora, invece di
$query = @mysql_query ($sql) or die(mysql_error());
scrivi
echo $sql.'<br />';
poi esegui a mano direttamente sul db (con phpmyadmin per esempio) le 2 query che ti stampa e vedi cosa succede.