Cita: yo siempre he utilizado Substr() para obtener cadena de caracteres, de todas formas, no soy un experto en PHP solo utilizo las funiones que me han servido en su momento.
Veamos, substr() es un a funcion de PHP (
www.php.net/substr), y substring() es una funcion de MySQL (
www.mysql.com/substring). La consulta es codigo MySQL, asi que tienes que usar funciones MySQL. Fuera de la consulta debes usar funciones PHP.
Cita: ahora no me arroja el error de linea, pero no muestra los campos del arreglo.
Consejo importante: no metas la consulta directamente en el mysql_query(), usa una variable temporal, asi:
Código PHP:
$sql="SELECT nro,nom,ape FROM socios WHERE substring(nro,1,5) = '$cCodi'";
$res=mysql_query($res);
¿Por que? Porque asi puedes hacer facilmente un:
para ver realmente la consulta que itentas ejecutar.
De todas formas, el fallo aqui todavia es debido a que te fijas en substr() (
www.php.net/substr), y no en substring() (
www.mysql.com/substring). Si miras esos manuales, veras que en substr() (PHP), el primer caracter tiene el indice 0 (para hacerlo compatible con los arrays), pero si te fijas en substring() (MySQL), veras que el primer caracter tiene el indice 1.
Asi que no te devuelve ningun registro porque esta comparando los 5 primeros caracteres del campo de la base de datos, es decir, 'a0254' con '02540'.
asi que tienes que cambiar la posicion de comienzo en substring()
substring(nro, 2, 5)
Saludos.