Добавяне в бд всички полета, които не са празни

mKrotiFy

Registered
Имам 10 полета за отговори в анкета, но не всяка анкета е задължително да бъде с 10 отговора.
Искам да направя така, че празните полета да не се добавят като празни в базата данни. Как трябва да бъде структурирана заявката?
 
mKrotiFy каза:
Имам 10 полета за отговори в анкета, но не всяка анкета е задължително да бъде с 10 отговора.
Искам да направя така, че празните полета да не се добавят като празни в базата данни. Как трябва да бъде структурирана заявката?
PHP:
$vapros = $_POST['vapros'];
$otgovor1 = (empty($_POST['otgovor1'])) ? '' : $_POST['otgovor1'];
$otgovor2 = (empty($_POST['otgovor2'])) ? '' : $_POST['otgovor2'];
$otgovor3 = (empty($_POST['otgovor3'])) ? '' : $_POST['otgovor3'];
mysql_query("INSERT INTO `anketi` (`vapros`, `otgovor1`, `otgovor2`, `otgovor3`) VALUES ('$vapros', '$otgovor1', '$otgovor2', '$otgovor3')");
:?:
 
mKrotiFy каза:
Не, не става, пак си добавя полетата празни.
Моя грешка прочел съм грешно изречението.
Ето:
PHP:
$vapros = $_POST['vapros'];

$otgovor1 = (empty($_POST['otgovor1'])) ? 'tekst' : $_POST['otgovor1'];

$otgovor2 = (empty($_POST['otgovor2'])) ? 'tekst' : $_POST['otgovor2'];

$otgovor3 = (empty($_POST['otgovor3'])) ? 'tekst' : $_POST['otgovor3'];

mysql_query("INSERT INTO `anketi` (`vapros`, `otgovor1`, `otgovor2`, `otgovor3`) VALUES ('$vapros', '$otgovor1', '$otgovor2', '$otgovor3')");
:?:
 
ъъ... не не.. Аз явно не съм го обяснил добре. Значи празно ли е полето да не го добавя изобщо. Това искам. :D
 
Да, ето я структурата.
[sql]CREATE TABLE `polls_answers` (
`id` INT( 255 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`question_id` VARCHAR( 255 ) NOT NULL ,
`answer` VARCHAR( 255 ) NOT NULL ,
`votes` VARCHAR( 255 ) NOT NULL DEFAULT '0'
) ENGINE = MYISAM ;[/sql]
 
PHP:
<?
$val = htmlspecialchars($_POST['question_id']);
$val2 = htmlspecialchars($_POST['answer']);
$val3 = htmlspecialchars($_POST['votes']);
if($val != "") {$pole = "question_id,";$dbval = "'$val',";}
if($val2 != "") {$pole2 = "answer,";$dbval2 = ""}
if($val3 != "") {$pole3 = "votes";$dbval3 = ""}
mysql_query("INSERT INTO polls_answers($pole $pole2 $pole3)VALUES($dbval $dbval2 $dbval3)")or die(mysql_error());
?>

Мисля че така може да стане... :D

пък може след като запишеш в дб-то да добавиш нова заявка г/д като тази
PHP:
mysql_query("DELETE FROM polls_answers WHERE question_id='' AND answer='' AND votes=''")or die(mysql_error());
тя изтрива полетата с празни стойности :)
 
пък може след като запишеш в дб-то да добавиш нова заявка г/д като тази
Оф точно това ще направя и няма да се занимавам. Мерси за идеята! :D
 

Back
Горе