$id = (int)$_GET['id']?$_GET['id']:null;
$query = mysql_query("SELECT * FROM `test` WHERE id='.$id.'");
Однако если я в самом запросе подставлю WHERE id='.(int)$id.' то вроде все ок.
Собственно вопрос я же вроде как в 1 строке сказал php что переменная $id - целое число, разьве нет?
Спустя 10 минут, 55 секунд (22.03.2011 - 12:02) sharki написал(а):
Renden
Приводить надо к целочисленному значению прямо в запросе или
Приводить надо к целочисленному значению прямо в запросе или
$id = isset($_GET['id']) ? (int)$_GET['id'] : null;
Спустя 3 часа, 10 минут, 55 секунд (22.03.2011 - 15:13) inpost написал(а):
Renden
$id = (int)$_GET['id']?$_GET['id']:null;
Переводим в лёгкий вид:
Понимаешь, что ты не там, где надо поставил int?
Вопрос теперь №2, если ты нигде более на странице не будешь использовать переменную, то работай непосредственно в запросе: `id`=".(int)$_GET['id']." , не за чем забивать 1 ячейку памяти одной лишней переменной.
$id = (int)$_GET['id']?$_GET['id']:null;
Переводим в лёгкий вид:
if(isset((int)$_GET['id'])) // true?
$id = $_GET['id'];
else
$id = null;
Понимаешь, что ты не там, где надо поставил int?
Вопрос теперь №2, если ты нигде более на странице не будешь использовать переменную, то работай непосредственно в запросе: `id`=".(int)$_GET['id']." , не за чем забивать 1 ячейку памяти одной лишней переменной.
Спустя 2 минуты, 16 секунд (22.03.2011 - 15:15) Snus написал(а):
inpost
Интересная формулировка "забивать 1 ячейку памяти"
Расшифруй, пожалуйста
Интересная формулировка "забивать 1 ячейку памяти"


Спустя 7 минут, 40 секунд (22.03.2011 - 15:23) neadekvat написал(а):
Цитата (Snus @ 22.03.2011 - 15:15) |
Интересная формулировка "забивать 1 ячейку памяти"Расшифруй, пожалуйста |
Каждая переменная занимает свое место в оперативной памяти.
Ввели переменную - значит, откусили какое-то пространство из памяти.
В языках со строгой типизации, если я не ошибаюсь, место под переменную занимается сразу, фиксированное. Как это происходит в php - точно не знаю. Правда, если учесть, что он написан на Си - языке со строгой типизацией.. То понятнее не становится.
Спустя 30 минут, 55 секунд (22.03.2011 - 15:54) inpost написал(а):
Snus
Уже ответили за меня, но скажу, это лишь абстрактное представление "ячейка памяти".
Уже ответили за меня, но скажу, это лишь абстрактное представление "ячейка памяти".
Спустя 18 часов, 15 минут, 25 секунд (23.03.2011 - 10:09) linker написал(а):
Если вам нужно целочисленное, то какого фига используется null?
$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
Спустя 24 минуты, 47 секунд (23.03.2011 - 10:34) uWeb написал(а):
$id = isset($_GET['id']) ? +$_GET['id'] : 0;
Спустя 1 минута, 35 секунд (23.03.2011 - 10:36) Zerstoren написал(а):
Если для языков типа C,C++,PHP,Python
0 == null //true
но
0 !==null //true
то для Mysql 0 != null
скажем так.
если в базе указано значение NULL
то условие должно выглядеть так
WHERE id IS NULL
вот в общем.
ЗЫ uWeb. Что за плюс такой?
0 == null //true
но
0 !==null //true
то для Mysql 0 != null
скажем так.
если в базе указано значение NULL
то условие должно выглядеть так
WHERE id IS NULL
вот в общем.
ЗЫ uWeb. Что за плюс такой?
Спустя 44 минуты, 28 секунд (23.03.2011 - 11:20) Renden написал(а):
Спасибо всем, особенно inpost-у теперь стало намного понятнее.