Es un fallo de PHP simple:
Código PHP:
$datos = array('id' => "$fila[id]",
'$nombre' => "$fila[nombre]",
'web' => "$fila[web]",
'telefono' => '$fila[telefono]'
);
Esta mal. Pon
Código PHP:
$datos[] = array('id' => $fila['id'],
'nombre' => $fila['nombre'],
'web' => $fila['web'],
'telefono' => $fila['telefono']
);
Con los [] consigues que en cada iteracion se cree un nuevo elemento en el array $datos. Y las " estaban mal en los valores.
Ahora puedes hacer un print_r($datos) para comprobar que tiene los valores correctos.