проблема с типом Null

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Ответить
elk
Сообщения: 7
Зарегистрирован: 05 дек 2006, 02:35

27 дек 2006, 21:08

Помогите плз.
Значение переменной $a берется из БД. Потом эта переменная используется в условии (if). Но получается так, что перемення эта после присваения значения из БД, получает тип NULL, хотя при этом у нее есть реальное значение (путь к файлу картинки). И если эту переменную посмотреть через echo"$a"; то в ней содержится путь к файлу, который взялся по запросу из БД. но gettype($a) - дает значение NULL. И коректно использовать эту переменную в условии (if $a == 0) я не могу, так как почему-то у нее тип NULL. Объясните кто может, разве такое возможно чтоб переменная типа NULL имела какое-нибудь еще значение кроме NULL? И почему она у меня вдруг стала NULLом если в БД эта запись ТEXT. Пробывал эту переменную после выполнения запроса приводить к типу string settype($a, string) - не помогло. Уже весь задолбался - не могу понять в чем тут может быть дело?
Аватара пользователя
Duncon
Сообщения: 1974
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

27 дек 2006, 22:02

Покажи запрос и саму таблицу (как создается)
elk
Сообщения: 7
Зарегистрирован: 05 дек 2006, 02:35

27 дек 2006, 23:09

Запрос следующий

Код: Выделить всё


BD=mysql_query
            (
            "select FOTO
             from catalog
             where ID='$id'
             
            ")

           or die ("не могу прочитать таблицу");

$res=mysql_fetch_array($BD);


$a=$res[FOTO];


 
А таблица была создана через phpMyAdmin, но поле от куда берется значение $a имеет тип TINYTEXT и not null

данные в поле FOTO заносятся по запросу:

Код: Выделить всё


$fotoUpdate = mysql_query
                          ("update catalog
                            set FOTO = '$servAdress'
                            where
                            ID = '$id';
                          ")

                          or die ("не могу добавить путь к фото в БД ");
 


переменная $servAdress (путь к фото) до этого генерится вот таким кодом:

Код: Выделить всё


           //генерим путь к фото т уникальное имя файла фото
            $rnd = mt_rand();
            $servAdress = '../../fotobd/'.$numFoto.'ft'.$rnd.$format;
 
Аватара пользователя
Duncon
Сообщения: 1974
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

28 дек 2006, 10:53

Ты обрабатываешь результат запроса и при этом получаешь массив (mysql_fetch_array) после этого можно обращаться к переменным не $a=$res[FOTO];
а просто $FOTO
попробуй так должно точно работать, если нет то возможная ошибка в структуре БД

Код: Выделить всё

$res=mysql_fetch_array($BD); 
extract($res);
$FOTO 
Ответить