il tuo echo deve diventare come quello che ti ha postato clasku altrimenti al momento non stai passando niente alla pagina che effettua l'update dei voti.
Quel $row['id'] ti serve nella query per capire a chi devi aggiungere un voto e per farlo devi usare il campo nascosto come suggerito da clasku oppure dovresti cambiare totalmente approccio e richiamare quella pagina in ajax (credo) però eviterei al momento e continuerei su questa strada
EDIT: con iltuo codice, prova a stampare $id e vedrai subito che ti manca qualcosa xD
EDIT x 2: stai utilizzando solo quel codice oppure ci sono pezzi che non vediamo?
codice:
<?php$con=mysqli_connect("localhost","bla","bla","bla");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM proposte_utenti where id_disc = '$id_disc'");
Da dove prendi $id_disc?
echo "<table class='CSSTableGenerator'>
<tr>
<td WIDTH ='50px'>Nickname</td>
<td WIDTH ='130px'>Proposta</td>
<td WIDTH ='50px'>Tot. Voti</td>
<td WIDTH ='50px'>Vota</td>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>"; echo "<td WIDTH ='40px' >" . $row['nickname'] . "</td>";
echo "<td height ='10px' >" . $row['proposta'] . "</td>";
echo "<td >" . $row['Voti'] . "</td>";
echo '<td><form method="get"><input name="button3" type="submit" id="' . $row['id'] . '" value="Vota" class="button3" /></form></td>'; }echo "</table>";
--> if(isset($_get['button3'])) non serve piu modifica come sotto <--
if(isset($_GET['id']
{
$id = $_get['id'];
$result = mysql_query("update proposte_utenti set Voti = voti + 1 WHERE id=$id");
echo "<br><p style='text-align: center;'><span style='font-size: medium; font-family: tahoma; color: red;'> Grazie per il tuo voto. </span></p> </br>";
}
?>