Ese PHP está mal copiado o está incompleto. La quer está mal cerrada, por lo que supongo que o no nos estás poniendo el código completo o lo has copiado mal.
Código PHP:
Ver original<?php
------->conecto con la base de datos
include "conexion.php";
------->recojo los datos desde un formulario
$id=$_POST['id'];
$nombre=$_POST['nombre'];
$direccion=$_POST['direccion'];
------->doy las instrucción para la actualización
nombre='$nombre', direccion='$direccion' WHERE num='$id', $link);
?>
¿Ves cómo queda mal resaltado el código?
Bueno, eso es un problema.
En cualquiera de ambos caso, para que un UPDATE aplique sobre todos los registros no debe tener WHERE o bien las condiciones del mismo no son restrictivas, es decir, es una condición tal que la cumplen todos.
Habría que revisar concretamente cuál es la sintaxis con que queda armada la consulta al final.
Algo como:
Código PHP:
Ver original<?php
------->conecto con la base de datos
include "conexion.php";
------->recojo los datos desde un formulario
$id=$_POST['id'];
$nombre=$_POST['nombre'];
$direccion=$_POST['direccion'];
------->doy las instrucción para la actualización
$sql = "UPDATE registradas SET nombre='$nombre', direccion='$direccion' WHERE num='$id'";
echo $sql; //Para que se visualice la sentencia armada.
?>