Про запись в поле NULL

vitalf

Новичок
Про запись в поле NULL

Учу PHP и MySQL. Проблема в следующем. При записи в поле со значением по умолчанию NULL пустая POST-переменная записывается как 0. Нутром чую что нужно что-то сделать, но не могу понять что.

Пожалуйста, подскажите, уже пол дня сижу.
 

_Leonchik_

Новичок
вопрос на подобие 'как проверял?' имеет подводный камень. а точнее аж 2.
1. как ты проверял что переменая пришла пустая?
2. и как ты проверил (а не подсмотрел), что в базе 0?
ну и покажи сам запрос.
 

vitalf

Новичок
В полях, где должно быть пусто стоят 0:

<?php
include ("../cfg/connect_db.php");
$all = mysql_query("select * from PRODUCTS_TABLE order by article") or die("Ошибка! Не могу отобразить товар.");
echo "<table cellspasing='5' bgcolor='CCD6F2' border='1' style='font-size: 90%'><tr bgcolor='9FB6F8'>";
echo "<th>№</th><th>Категория</th><th>Фабрика</th><th>Артикул</th><th>Фотография</th><th>Большая фоография</th>
<th>Тип</th><th>Высота</th><th>Диаметр</th><th>Лампочки</th><th>Ширина</th>
<th>Длина</th><th>Вкл/Выкл</th><th>Новинка</th><th>Удалить</th>";


for ($i=0; $i<mysql_num_rows($all); $i++){
$show_all = mysql_fetch_array($all);
$b = $i+1;
echo "<tr>";
echo "
<th>$b</th>
<td>$show_all[category]</td>
<td>$show_all[fabrika]</td>
<td><a href='index.php?edit_product&num=$show_all[num]'>$show_all[article]</a></td>
<td>$show_all[simg]</td>
<td>$show_all[bimg]</td>
<td>$show_all[type]</td>
<td>$show_all[h]</td>
<td>$show_all[d]</td>
<td>$show_all[lamp]</td>
<td>$show_all[w]</td>
<td>$show_all[l]</td>
<th><img src='img/$show_all[enable].jpg'></th>
<td><img src='img/new_$show_all[new]'></td>
<th><a href='index.php?del_product&num=".$show_all["num"]."'><img src='img/delete.jpg' border='0'></a></th>";
echo "</tr>";
}
echo "</table>";

?>
 

_Leonchik_

Новичок
мда. ни на один мой вопрос ты так и не ответил.
мне не интерестно как ты выводишь свою инфу. мне интересен скрипт занесения инфы. Я так понимаю у тебя с этим проблема?
И что за странная (никому не нужная) операция?
PHP:
$b = $i+1;
 

vitalf

Новичок
Операция как операция )))
Сорри не понял сразу, к вечеру голова квадратная

mysql_query("INSERT INTO PRODUCTS_TABLE (category,fabrika,simg,bimg,article,type,h,w,d,l,lamp,enable,new)
VALUES ('".$_POST["category"]."','".$_POST["fabrika"]."','".$_POST["simg"]."','".$_POST["bimg"]."','".$_POST["article"]."','".$_POST["type"]."','".$_POST["h"]."','".$_POST["w"]."','".$_POST["d"]."','".$_POST["l"]."','".$_POST["lamp"]."','".$_POST["enable"]."','".$_POST["new"]."')") or die("Не получилось");
 

_Leonchik_

Новичок
ты уже разобрался с проблемой?
если нет - вот читай http://phpfaq.ru/debug
 

vitalf

Новичок
Я выяснил, что POST надо обработать, только не знаю как :(

Что мне делать? подскажите плиз.
Как POST-переменную обработать так, чтоб она была совсем пустая? Я так подозреваю, что в этом случае у меня впишется NULL.

Наверно надо :

if(empty($_POST["name"])) тыры-пыры($_POST["name"]);

Но что за тыры-пыры? :)
 

vitalf

Новичок
Автор оригинала: _Leonchik_
что говорит var_dump на твой пост?
var_dump($_POST); выдает array(13) { ["category"]=> string(1) "2" ["fabrika"]=> string(6) "Ciulli" ["simg"]=> string(0) "" ["bimg"]=> string(0) "" ["article"]=> string(14) "11111111111111" ["type"]=> string(0) "" ["h"]=> string(0) "" ["w"]=> string(0) "" ["d"]=> string(0) "" ["l"]=> string(0) "" ["lamp"]=> string(0) "" ["enable"]=> string(1) "1" ["new"]=> int(0) }



Автор оригинала: Фанат
чобы вписался NULL, надо вписывать в базу NULL!
Я вот и пытаюсь это выяснить
 

vitalf

Новичок
Да он пустоту вписывает в этом случае. Не 0 и не NULL а просто пустоту.
Значение по умолчанию у поля NULL
 

vitalf

Новичок
//Сохранение добавленного продукта
elseif (isset($_GET["add_product"]) && isset($_GET["save"])) {



if(empty($_POST['new'])) $_POST['new'] = 0;
if(empty($_POST['enable'])) $_POST['enable'] = 0;


mysql_query("INSERT INTO PRODUCTS_TABLE (category,fabrika,simg,bimg,article,type,h,w,d,l,lamp,enable,new)
VALUES ('".$_POST["category"]."','".$_POST["fabrika"]."','".$_FILES['simg']['name']."','".$_FILES['bimg']['name']."',
'".$_POST["article"]."','".$_POST["type"]."','".$_POST["h"]."','".$_POST["w"]."','".$_POST["d"]."',
'".$_POST["l"]."','".$_POST["lamp"]."','".$_POST["enable"]."','".$_POST["new"]."')") or die("Не получилось");
if (!empty($_FILES['bimg']['tmp_name'])) {
copy($_FILES['bimg']['tmp_name'],"../products_foto/bimg/".$_FILES['bimg']['name']);
}
else echo "Не загрузил Большую Фотографию!";
if (!empty($_FILES['simg']['tmp_name'])) {
copy($_FILES['simg']['tmp_name'],"../products_foto/simg/".$_FILES['simg']['name']);
}
else echo "Не загрузил маленькую Фотографию!";

echo "<p><font color='0D9D2F'><b>Добавление прошло успешно!</b></font>";
include ("includes/add_product.php");
}
 

vitalf

Новичок
Спс за кавычки

Добавлял строки типа
if(empty($_POST["type"])) $_POST["type"] = NULL;

не спасает
 
Сверху