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.