Forum Webscript.Ru

Программирование => PHP => Тема начата: Tepncuxopa от 05 Февраля 2002, 15:36:42

Название: Пустые поля в базе
Отправлено: Tepncuxopa от 05 Февраля 2002, 15:36:42
Есть база данных в которой некоторые поля могут быть нулевыми (NULL). Как мне сделать проверку на заполненность этого поля? Что-то типа такого:

$query = mysql_query("SELECT * FROM `bb` WHERE `model` LIKE \'name1\'");
$r1=\'\'; $r2=\'\'; ...
while ($result = mysql_fetch_array($query)) {
if ($result[\'type1\'] != NULL) {$r1 = $result[\'type1\'].\'
\'};
if ($result[\'type2\'] != NULL) {$r2 = $result[\'type2\'].\'
\'};
...
echo $r1,$r2,...
}

Только так оно не работает :(
Название: Пустые поля в базе
Отправлено: AlieN от 05 Февраля 2002, 16:15:12
типа попробуй сделать вроде такого
select всякая лабуда откуда и т.д. и т.п. where type1 is NULL or type2 us null

если я тебя правильно понял то этот код выдаст тебе именно то что нужно
Название: Пустые поля в базе
Отправлено: MadDog от 05 Февраля 2002, 16:30:09
м-м, а если так
if (!empty($result[\'type1\'])) {$r1 = $result[\'type1\'].\'
\'};

А если использовать твой вариант, то вместо NULL надо писать \'\', т.е.
if ($result[\'type1\'] != \'\') {$r1 = $result[\'type1\'].\'
\'};
Название: Пустые поля в базе
Отправлено: Tepncuxopa от 05 Февраля 2002, 16:43:58
2AlieN: Мне select нужен именно по полю \'model\', а его значение (т.е. name1) зависит от выбора пользователя. Поскольку у разных моделей пустыми могут быть различные поля, то нужно перебирать все поля и отсеять нулевые (если поле нулевое, то в переменная $r.. должна остаться пустой).


MadDog: Выдает ошибку и в первом и во втором случае :(
Название: Пустые поля в базе
Отправлено: Pr0Head от 05 Февраля 2002, 18:54:53
По-моему проверку на заполнение какого-либо поля проще сделать в ява-скрипт, к тому же он будет ругаться еще до того, как форма уйдет к скрипту.
Название: Пустые поля в базе
Отправлено: Britva от 05 Февраля 2002, 18:58:46
Цитировать
По-моему проверку на заполнение какого-либо поля проще сделать в ява-скрипт, к тому же он будет ругаться еще до того, как форма уйдет к скрипту.

Это можно навсякий случай делать, а в самом скрипте проверку надо обязательно, а то я смогу сам скрипту послать любые данные - обойдя яваскрипт.
Название: Пустые поля в базе
Отправлено: Pr0Head от 05 Февраля 2002, 19:06:56
Согласен, но сколько времени можно сэкономить, если поставить хотя бы предварительную проверку ява-скриптом. Ведь если пользователь не заполнит поле, ему придется ждать пока отправится форма, выдастся результат и еще вернуться назад.
Название: Пустые поля в базе
Отправлено: Tepncuxopa от 05 Февраля 2002, 19:16:05
Цитировать
По-моему проверку на заполнение какого-либо поля проще сделать в ява-скрипт, к тому же он будет ругаться еще до того, как форма уйдет к скрипту.
Данные в базу поступают не через форму. И вообще: сама структура базы разработана так, чтобы позволить определенные поля оставить пустыми.
Название: Пустые поля в базе
Отправлено: Pr0Head от 05 Февраля 2002, 19:35:10
Совсем плохой... Еще раз прочитал топик и понял что говорил не о том...

Сорри.
Название: Пустые поля в базе
Отправлено: Pr0Head от 05 Февраля 2002, 19:43:21
while ($myrow = mysql_fetch_array($result))
{
if ($myrow["news"] != "") {
$string = "not null";
echo $string."
";
}
else {
$string = "null";
echo $string."
";
}
}

Вот так, работает...
Название: Все заработало!
Отправлено: Tepncuxopa от 05 Февраля 2002, 20:57:46
Странно... Такой глюк обнаружила: когда в существующую таблицу добавляется поле, которое может быть пустым (NULL) -- значение по-умолчанию этого поля выставляется NULL, а в предыдущих записях базы -- в это поле вообще непонятно что устанавливается :( Во всяком случае в такой ситуации проверка на пустоту не работала. Пришлось базу заново набивать: по другому не получалось :(