Если проверять id на наличие букв можно ли обезопасить себя от sql injection?
Будьте проще $idq = intval($_GET ['id']);
Во-первых редикт не совсем хороший 
Лучше сделать так:  header ("Location: $url");
Во-вторых если строку закончить цифрой, то она вернет true.
Если вам надо подсчитать отношение цифр к бкувам, то лучше спарсить цифры регулярокй и сравнить с общим числом (предварительно обрезав из начала и конца пробелы).