Автор Тема: Пустые поля в базе  (Прочитано 4474 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Tepncuxopa

  • Муза форума
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 386
  • +0/-0
  • 1
    • Просмотр профиля
Пустые поля в базе
« : 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

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Пустые поля в базе
« Ответ #1 : 05 Февраля 2002, 16:15:12 »
типа попробуй сделать вроде такого
select всякая лабуда откуда и т.д. и т.п. where type1 is NULL or type2 us null

если я тебя правильно понял то этот код выдаст тебе именно то что нужно
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн MadDog

  • Главный Металликолог
  • Ветеран
  • *****
  • Сообщений: 679
  • +0/-0
  • 2
    • Просмотр профиля
Пустые поля в базе
« Ответ #2 : 05 Февраля 2002, 16:30:09 »
м-м, а если так
if (!empty($result[\'type1\'])) {$r1 = $result[\'type1\'].\'
\'};

А если использовать твой вариант, то вместо NULL надо писать \'\', т.е.
if ($result[\'type1\'] != \'\') {$r1 = $result[\'type1\'].\'
\'};
So let it be written
So let it be done I\'m creeping death

Оффлайн Tepncuxopa

  • Муза форума
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 386
  • +0/-0
  • 1
    • Просмотр профиля
Пустые поля в базе
« Ответ #3 : 05 Февраля 2002, 16:43:58 »
2AlieN: Мне select нужен именно по полю \'model\', а его значение (т.е. name1) зависит от выбора пользователя. Поскольку у разных моделей пустыми могут быть различные поля, то нужно перебирать все поля и отсеять нулевые (если поле нулевое, то в переменная $r.. должна остаться пустой).


MadDog: Выдает ошибку и в первом и во втором случае :(

Оффлайн Pr0Head

  • Members of GreenPeace
  • Постоялец
  • ***
  • Сообщений: 219
  • +0/-0
  • 2
    • Просмотр профиля
    • http://digital-market.ru
Пустые поля в базе
« Ответ #4 : 05 Февраля 2002, 18:54:53 »
По-моему проверку на заполнение какого-либо поля проще сделать в ява-скрипт, к тому же он будет ругаться еще до того, как форма уйдет к скрипту.
Банк выполнил недопустимую операцию и будет закрыт!

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Пустые поля в базе
« Ответ #5 : 05 Февраля 2002, 18:58:46 »
Цитировать
По-моему проверку на заполнение какого-либо поля проще сделать в ява-скрипт, к тому же он будет ругаться еще до того, как форма уйдет к скрипту.

Это можно навсякий случай делать, а в самом скрипте проверку надо обязательно, а то я смогу сам скрипту послать любые данные - обойдя яваскрипт.
Евгений aka Razor,

Оффлайн Pr0Head

  • Members of GreenPeace
  • Постоялец
  • ***
  • Сообщений: 219
  • +0/-0
  • 2
    • Просмотр профиля
    • http://digital-market.ru
Пустые поля в базе
« Ответ #6 : 05 Февраля 2002, 19:06:56 »
Согласен, но сколько времени можно сэкономить, если поставить хотя бы предварительную проверку ява-скриптом. Ведь если пользователь не заполнит поле, ему придется ждать пока отправится форма, выдастся результат и еще вернуться назад.
Банк выполнил недопустимую операцию и будет закрыт!

Оффлайн Tepncuxopa

  • Муза форума
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 386
  • +0/-0
  • 1
    • Просмотр профиля
Пустые поля в базе
« Ответ #7 : 05 Февраля 2002, 19:16:05 »
Цитировать
По-моему проверку на заполнение какого-либо поля проще сделать в ява-скрипт, к тому же он будет ругаться еще до того, как форма уйдет к скрипту.
Данные в базу поступают не через форму. И вообще: сама структура базы разработана так, чтобы позволить определенные поля оставить пустыми.

Оффлайн Pr0Head

  • Members of GreenPeace
  • Постоялец
  • ***
  • Сообщений: 219
  • +0/-0
  • 2
    • Просмотр профиля
    • http://digital-market.ru
Пустые поля в базе
« Ответ #8 : 05 Февраля 2002, 19:35:10 »
Совсем плохой... Еще раз прочитал топик и понял что говорил не о том...

Сорри.
Банк выполнил недопустимую операцию и будет закрыт!

Оффлайн Pr0Head

  • Members of GreenPeace
  • Постоялец
  • ***
  • Сообщений: 219
  • +0/-0
  • 2
    • Просмотр профиля
    • http://digital-market.ru
Пустые поля в базе
« Ответ #9 : 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

  • Муза форума
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 386
  • +0/-0
  • 1
    • Просмотр профиля
Все заработало!
« Ответ #10 : 05 Февраля 2002, 20:57:46 »
Странно... Такой глюк обнаружила: когда в существующую таблицу добавляется поле, которое может быть пустым (NULL) -- значение по-умолчанию этого поля выставляется NULL, а в предыдущих записях базы -- в это поле вообще непонятно что устанавливается :( Во всяком случае в такой ситуации проверка на пустоту не работала. Пришлось базу заново набивать: по другому не получалось :(

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28