Hola,
Si tienes el codigo tal como esta en el mensaje, nunca se ejecuta el else. Siempre se ejecuta el primer select. ¿Por que? Pues porque $R2=1 siempre es verdadero. ¿Por que? Porque $R2=1 es asignar a la variable $R2 el valor 1, y esa expresion devuelve 1 que el verdadero. ¡Pero si lo que yo queria era comparar! El operador = es de asignacion, el igualdad es ==, y el de "exactamente iguales en valor y tipo" es ===. Asi que si querias comparar $R2 con 1, deberias haber puesto:
Código PHP:
if ($R2==1) {
Para evitar este tipo de problemas, yo acostumbro a poner el valor a la izquierda del operador. Asi:
Código PHP:
if (1==$R2) {
porque asi si me equivoco y pongo 1=$R2, PHP me pega un grito con un error que dice algo asi como 'no se puede asignar valores a constantes'.
Y en tu codigo supongo que cuando querias que se ejecutase el segundo select, es porque $nombre no tenia valor. Y entonces estaria ejecutando la primera consulta sin el valor de $nombre, asi que pasaria lo que pasaba.
Espero haber sido de ayuda.