Intval PHP () dziwne wyniki
Spotykam coś dziwnego i nie wiem, dlaczego tak się dzieje!
Mam adres URL taki jak:
http://mysite.com/users/USER_ID
ten identyfikator użytkownika może byćINT
i może byćSTRING
, to coś w rodzaju adresów na Facebooku, jeśli wywołujesz stronę z identyfikatorem strony, ładuje ją, możesz też nazwać ją nazwą strony „moja_nazwa_strony”
Wyobraź sobie użytkownika, którego identyfikatorem jest1
a jego adres jestmy_name
Na mojej stronie php potrzebuję zapytania db, ale wcześniej muszę wiedzieć, która kolumna ma wyglądać,id
lubpage_name
Więc przyszedłem z tym rozwiązaniem:
<?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');
?>
Przetestowałem to, ale wyniki są dziwne, nawet jeśli zadzwonię pod ten adres URL:
http://mysite.com/users/page_name
To się stało:$column = 'id';
Otworzyłem nową stronę testową:
<?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...";
?>
a wyniki:
Real String is: abcdefg
The same string as int is: 0
Weird!
Dlaczego tak się dzieje?
Z góry dziękuję.