PHP intval () resultados estranhos

Estou encontrando algo estranho e não sei porque está acontecendo!

Eu tenho um URL como:

http://mysite.com/users/USER_ID

esse ID de usuário pode serINT e poderia serSTRING, é algo parecido com os endereços das páginas do Facebook, se você chamar a página com o ID da página, ele também poderá chamá-lo com o nome da página como "minha_page_name"

Então imagine um usuário cujo ID é1 e o endereço émy_name Na minha página php eu preciso de consulta db, mas antes disso eu preciso saber qual coluna procurar,id oupage_name

Então eu vim com esta solução:

<?php
    $id = $_GET['id'];
    $id_inted = intval($_GET['id']);

    if($id == $id_inted){
    // The column which I should look into is id
    $column = 'id';
    }else{
    // The column which I should look into is page_name
    $column = 'page_name';
    }

    $query = mysql_qyery(SELECT * FROM members WHERE $column = '$id');
?>

Então eu testei, mas os resultados são estranhos, mesmo que eu chame este URL:

http://mysite.com/users/page_name

Isto acontece:$column = 'id';

Eu abri uma nova página de teste:

<?php
$real_string = 'abcdefg';
$string_inted = intval($real_string);
echo "Real String is: " . $real_string . "<br />"; 
echo "The same string as int is: " . $string_inted . "<br />"; 
if($real_string == $string_inted) echo "Weird!"; else echo "Fine...";
?>

e os resultados:

Real String is: abcdefg
The same string as int is: 0
Weird!

Porque isso está acontecendo?

Desde já, obrigado.

questionAnswers(5)

yourAnswerToTheQuestion