@tolnev

Не заносятся данные с формы в БД?

Всем привет.
Такая проблема: есть форма для добавления записи в БД
function get_add_item_form() 
{ 
  echo '<h2>Добавить</h2>';  
  echo '<form name="addform" action="'.$_SERVER['PHP_SELF'].'?action=add" method="POST">'; 
  echo '<table>'; 
  echo '<tr>'; 
  echo '<td>Имя</td>'; 
  echo '<td><input type="text" name="first_name" value="" /></td>'; 
  echo '</tr>'; 
  echo '<tr>'; 
  echo '<td>Фамилия</td>'; 
  echo '<td><input type="text" name="last_name" value="" /></td>'; 
  echo '</tr>';
  echo '<tr>'; 
  echo '<td>Должность</td>'; 
  echo '<td><input type="text" name="job_title" value="" /></td>'; 
  echo '</tr>';
  echo '<tr>'; 
  echo '<td>Компания</td>'; 
  echo '<td><input type="text" name="company" value="" /></td>'; 
  echo '</tr>'; 
  echo '<tr>'; 
  echo '<td>Телефон</td>'; 
  echo '<td><input type="text" name="phone" value="" /></td>'; 
  echo '</tr>';
  echo '<tr>'; 
  echo '<td>Email</td>'; 
  echo '<td><input type="text" name="email" value="" /></td>'; 
  echo '</tr>';
  echo '<tr>'; 
  echo '<td>Статус</td>'; 
  echo '<td>
  		<select name="status">
		  <option value="" disabled>Выберите...</option>
		  <option value="Новый" selected>Новый</option>
		  <option value="Белый список">Белый список</option>
		  <option value="Черный список">Черный список</option>
		</select></td>'; 
  echo '</tr>';
  echo '<tr>'; 
  echo '<td class="right-align"><input type="submit" value="Сохранить" class="btn waves-effect waves-light"></td>'; 
  echo '<td><button type="button" onClick="history.back();" class="btn waves-effect waves-light">Отменить</button></td>'; 
  echo '</tr>'; 
  echo '</table>'; 
  echo '</form>'; 
}

В свою очередь эта форма вызывает функцию которая записывает эти данные в таблицу:
function add_item() 
{ 
  $first_name = mysql_escape_string( $_POST['first_name'] );
  $last_name = mysql_escape_string( $_POST['last_name'] );
  $job_title = mysql_escape_string( $_POST['job_title'] );
  $company = mysql_escape_string( $_POST['company'] );
  $phone = mysql_escape_string( $_POST['phone'] );
  $email = mysql_escape_string( $_POST['email'] );
  $status = mysql_escape_string( $_POST['status'] ); 
  $query = "INSERT INTO items (title, description) VALUES ('".$first_name."', '".$last_name."', '".$job_title."', '".$company."', '".$phone."', '".$email."', '".$status."');"; 
  mysql_query ( $query ); 
  header( 'Location: '.$_SERVER['PHP_SELF'] );
  die();
}

Но почему то при нажатии кнопки сохранить, ничего не записывается. В чем проблема, вроде все правильно?
  • Вопрос задан
  • 260 просмотров
Пригласить эксперта
Ответы на вопрос 4
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
1. mysql_query не будет работать в PHP 7.0 и выше.
2. В INSERT'е попытка записать в два поля семь значений.
Ответ написан
Комментировать
@dmitryKovalskiy
программист средней руки
Вы в два поля таблицы фигачите 7 значений. Как их, простите, соотносить? Про конкатенацию запроса и использование инструкций, рекомендованных к исключению из кода, я промолчу.
Ответ написан
Комментировать
@tolnev Автор вопроса
Да, сорян, исправил, все работает...
Мда... Затупил. Всем спасибо!
function add_item() 
{ 
  $first_name = mysql_escape_string( $_POST['first_name'] );
  $last_name = mysql_escape_string( $_POST['last_name'] );
  $job_title = mysql_escape_string( $_POST['job_title'] );
  $company = mysql_escape_string( $_POST['company'] );
  $phone = mysql_escape_string( $_POST['phone'] );
  $email = mysql_escape_string( $_POST['email'] );
  $status = mysql_escape_string( $_POST['status'] ); 
  $query = "INSERT INTO users (first_name, last_name, job_title, company, phone, email, status) VALUES ('".$first_name."', '".$last_name."', '".$job_title."', '".$company."', '".$phone."', '".$email."', '".$status."');"; 
  mysql_query ( $query ); 
  header( 'Location: '.$_SERVER['PHP_SELF'] );
  die();
}
Ответ написан
trevoga_su
@trevoga_su
echo '< /tr >';
адский ад. прежде чем писать на ЯП, следует хотя бы минимально ознакомиться с его возможностями

www.phpinfo.su/articles/practice/shablony_v_php.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы