Ajá eso es, se guarda así porque todos tus campos tienen los mismos nombres, es decir, no haces diferencias entre cada registro. Utiliza el id en los nombres. Tendrás que ejecutar un ciclo con una consulta para cada registro, pues no puedes actualizarlos todos al mismo tiempo con datos diferentes. Haz algo así:
Código PHP:
# En la parte del while
while($datos = mysql_fetch_array($con)) {
echo '<tr><td width="1"><input name="horario['.$datos['id'].']" type="text" class="file" size="10" maxlength="10" value="'.$datos['horario'].'"></td>
<td width="99"><input name="titulo['.$datos['id'].']" type="text" class="file" size="70" value="'.$datos['titulo'].'"></td></tr>';
}
Y para ejecutar las consultas
Código PHP:
// En vez de
# $horario = $_POST['horario'];
# $titulo = $_POST['titulo'];
#
# $ids_a_modificar = array(1,2);
# $in = implode(',', $ids_a_modificar);
#
# $sql = "UPDATE radio_progra set horario='$horario', titulo='$titulo' WHERE id IN($in)";
# $res = mysql_query($sql) or die("Error: ".mysql_error());
$sql = "UPDATE radio_progra set horario='%1\$s', titulo='%2\$s' WHERE id = %3\$s";
$horarios = $_POST['horario'];
$titulos = $_POST['titulo'];
foreach($titulos as $i=>$t) {
mysql_query(sprintf($sql, $horarios[$i], $t, $i)) or die(mysql_error());
}
Supongo que así va a funcionar
Un saludo,