Lo primero, te has liado
Código PHP:
$query = mysql_query("SELECT * FROM `$tabla` WHERE referer like '$ref'");
$resp = mysql_query($query);
while($datos = @mysql_fetch_array($resp)){ // @ LIÑA DEL ERROR ¿ POR OUE ?
Fijate en la segunda linea, haces un mysql_query() de una variable devuelta por otro mysql_query.
Supongo que te has liado, y la primera linea no era un mysql_query(), sino simplemente asignar la cadena.
La segunda puede ser perfectamente porque lo que pasas a ereg es interpretado como un patron, y creo recordar que los / son caracteres con significado especial en los patrones. Y como las URL que vienen como referers van a tener /, seran interpretadas segun patrones, y no coincidida con la cadena almacenada.
Si lo que quieres es ver si una cadena aparece dentro de otra, es mas sencillo con strstr() (
www.php.net/strstr) o strpos() (
www.php.net/strpos) que con ereg().