Данните от формуляра се публикуват правилно в имейл, но неправилно в базата данни

Имам формуляр, в който хората могат да изберат дали да имат клас на половин час (напр. започващ или завършващ в 12:30, например) или дали само класове, завършващи на целия час (започващ или завършващ в 13:00, например ).

Това е квадратче за отметка, което извиква някакъв javascript. Когато формулярът бъде изпратен, данните се изпращат чрез POST до php скрипт, който изпраща информацията по имейл, а също и до php скрипт, който вмъква данните в mySQL база данни.

Когато квадратчето за отметка е отметнато, т.е. „Да“, изпратеният имейл включва POST полето „Да“ в имейла. Въпреки това, независимо от избора, базата данни винаги добавя '0' нула към колоната mySQL - как мога да го накарам да POST 'Yes' към базата данни, когато е избрано 'Yes', всичко останало работи добре.

Помощта се оценява, кодът е по-долу :)

html формуляр

<input type = "checkbox" name="halfClass" id="halfClass" value="Yes, I have half hour classes." style="width: 50px" onclick = "instructions(true)" >Yes<label style="width: 320px"><strong>Do you have some classes on the half hour?</strong></label></div>

php изпращане на имейл

$halfClass = $_POST['halfClass'];

$message = <<<EOD
<strong>$halfClass</strong> <br> <br />
EOD;

php изпращане в db

$sql = "INSERT INTO my_awesome_table (halfClass) VALUES ('$halfClass')";

Изображение: Какво показва таблицата на базата данни :(


person Will    schedule 11.11.2015    source източник
comment
как се свързват тези документи? на едно и също място ли са включени и скриптът php send email, и скриптът php submit to db? първо ли се изпълнява скриптът за изпращане на имейл? Предполагам, че $halfClass не съществува, когато отидете да го запишете в базата данни, което води до връщане NULL, което е 0 във вашата база данни   -  person iam-decoder    schedule 11.11.2015


Отговори (3)


Какъв е типът данни на таблицата? Може да се дължи на това, че типът данни е числов, а не низов. Използвайте varchar, за да коригирате, ако вече не е varchar.

person bagda391    schedule 11.11.2015
comment
Глупава грешка - благодаря на всички! Беше int(3), така че го промених на VARCHAR и работи като чар. - person Will; 14.11.2015

Проверете типа данни на вашата колона halfClass. Ако е числов тип, променете го на низ тип.

person Dark 73    schedule 11.11.2015

Ако halfClass е тип цяло число, използвайте:

$sql = "INSERT INTO my_awesome_table (halfClass) VALUES (".$halfClass.")";

Или ако halfClass е от тип varchar, използвайте:

$sql = "INSERT INTO my_awesome_table (halfClass) VALUES ('". $halfClass. "')";
person Shahzad    schedule 11.11.2015