1) Postea una captura de datos (tabla de resultado de la consulta), para poder ver concretamete lo que dices que está ocurriendo. Si yo construyo un caso imaginario con la información que nos das, no se cumple lo que dices que obtienes, sino lo que te esto diciendo que debería devovler...
2) Cuando pedimos el CREATE TABLE es eso exactamente lo que necesitamos que postees. No me sirve que describas. Lo que quiero ver es lo que realmente está definido. No lo pedimos por capricho, sino porque el forista a veces omite información relevante sin saberlo.
3) El filtro por ciudad (localidad = 'vigo' ) debe ir en el WHERE, no en el ORDER BY. En el contexto que lo estás poniendo podría estar evaluando la columna 1 (si localidad = 'vigo' es TRUE su valor analítico es 1), lo que explicaría el orden de los números, y no lo que supones.
En todo caso, deberías poner:
Código MySQL:
Ver original localidad='vigo'
(marca
LIKE '%".$nombre."%' OR direccion
LIKE '%".$nombre."%' OR localidad
LIKE '%".$nombre."%' ) direccion,