PErdon no habia visto lo de usar el preg_match
 
mira hice unas pruebas y no concigo que salga correctamente:    
Código PHP:
Ver original- $cadena_n = "12345"; 
- $cadena_l = "abcde"; 
- $cadena_2 = "1a3bc"; 
-   
-     echo "si contiene letras y/o numeros. $cadena_n <br />"; 
- } else{ 
-     echo "no contiene letras y/o numeros. $cadena_n <br />"; 
- } 
-   
-     echo "si contiene letras y/o numeros. $cadena_l <br />"; 
- } else{ 
-     echo "no contiene letras y/o numeros. $cadena_l <br />"; 
- } 
-   
-     echo "si contiene letras y/o numeros. $cadena_2 <br />"; 
- } else{ 
-     echo "no contiene letras y/o numeros. $cadena_2 <br />"; 
- } 
el resultado es: 
si contiene letras y/o numeros. 12345 
si contiene letras y/o numeros. abcde 
si contiene letras y/o numeros. 1a3bc  
si cambio || por &&, el resultado es: 
si contiene letras y/o numeros. 12345 
no contiene letras y/o numeros. abcde 
no contiene letras y/o numeros. 1a3bc  
EDITO: Vaya! parece que casi contestamos al mismo tiempo,  
 Cita:  Puedes hacer algo así y no necesitas sino una condición:
 
 
Código PHP: Ver original0.$regex = '#^[a-z]*[0-9][a-z0-9]*$#i';0. 0.var_dump(preg_match($regex, 'ABCDE'));0.var_dump(preg_match($regex, '1A23B'));0.var_dump(preg_match($regex, '12345'));0.var_dump(preg_match($regex, 'andres'));0.var_dump(preg_match($regex, 'andres1')); 
PD: var_dump es a modo de ejemplo y la función ereg es obsoleta.
 
Saludos.
    Acabo de ver tu respuesta justo cuando mande la mia, gracias por tu ayuda, pruebo lo que me propones y comento sale!!