2016-01-17 1 views
-1

Хорошо, у меня есть код для добавления, и я могу разместить данные, но после того, как я нажму «Добавить» по какой-то причине, я думаю, что он не сохраняет базу данных и просто дает мне пустую страницу это мое добавление код PHPРабота над редактированием Добавить и удалить для моей страницы и ее ничего не делать

<?php 
/* 
NEW.PHP 
Allows user to create a new entry in the database 
*/ 

// creates the new record form 
// since this form is used multiple times in this file, I have made it a function that is easily reusable 
function renderForm($id, $tit, $sal, $loc, $desc, $cat, $error) 
{ 
?> 

<?php 
// if there are any errors, display them 
if ($error != '') 
{ 
echo '<div style="padding:4px; border:1px solid red; color:red;">'.$error.'</div>'; 
} 
?> 

<form action="" method="post"> 
<div> 
<strong>ID: *</strong> <input type="text" name="id" value="<?php echo $id; ?>" /><br/> 
<strong>TITLE: *</strong> <input type="text" name="title" value="<?php echo $tit; ?>" /><br/> 
<strong>SALARY: *</strong> <input type="text" name="salary" value="<?php echo $sal; ?>" /><br/> 
<strong>LOCATION: *</strong> <input type="text" name="location" value="<?php echo $loc; ?>" /><br/> 
<strong>DESCRIPTION: *</strong> <input type="text" name="description" value="<?php echo $desc; ?>" /><br/> 
<strong>CATEGORY: *</strong> <input type="text" name="category" value="<?php echo $cat; ?>" /><br/> 
<p>* required</p> 
<input type="submit" name="submit" value="Submit"> 
</div> 
</form> 


<?php 
} 


// check if the form has been submitted. If it has, start to process the form and save it to the database 
if (isset($_POST['Add'])) 
{ 
// get form data, making sure it is valid 
$id = (htmlspecialchars($_POST['id'])); 
$title = (htmlspecialchars($_POST['title'])); 
$salary = (htmlspecialchars($_POST['salary'])); 
$location = (htmlspecialchars($_POST['location'])); 
$description = (htmlspecialchars($_POST['description'])); 
$category = (htmlspecialchars($_POST['category'])); 

// check to make sure both fields are entered 
if ($id == '' || $title == '' || $salary == '' || $location == '' || $description == '' || $category == '') 
{ 
// generate error message 
$error = 'ERROR: Please fill in all required fields!'; 

// if either field is blank, display the form again 
renderForm($id, $title, $salary, $location, $description, $category, $error); 
} 
else 
{ 
// save the data to the database 
$pdo->query("INSERT jobs SET id='$id', title='$title', salary='$salary', description='$description', category='$category'") 
or die; 

// once saved, redirect back to the view page 
header("Location: securepage.php"); 
} 
} 
else 
// if the form hasn't been submitted, display the form 
{ 
renderForm('','','','','','',''); 
} 
?> 

я не могу понять, что это не так, и как его не показывали мне никаких ошибок его более трудным. Но я думаю, что я уверен, что он имеет какое-то отношение к сохранению базы данных после вставки. Надеюсь, кто-то может мне помочь.

моя база данных называется вакансий и таблица заданий это те ценности, в таблице идентификатор, название, заработной платы, расположение, описание, category_id

пожалуйста, спросите меня, если вам нужна более подробную информацию, чтобы помочь мне лучше

+0

error_reporting добавить сверху – devpro

+0

Вставить в таблицу (столбец ..) значения (значения ...), это правильный путь. Ну и ваш запрос будет работать. Но ist добавляет отчет об ошибках на .. и чем печатает запрос yur и запускается вручную в phpmyadmin – devpro

+0

PHP обычно регистрирует ошибки в файле журнала ошибок. В зависимости от того, как он настроен, ошибки могут также отображаться на веб-странице (хорошо для разработки) или нет (полезно для общедоступных сайтов). Вместо ошибок вы видите пустую страницу, поэтому вам нужно искать в журнале. – RJHunter

ответ

1

Внутри тегов формы вам нужно добавить скрытый ввод с атрибутом Добавить атрибут.

<input type="hidden" name="Add" value="1" /> 

Это потому, что у вас есть инструкция if, проверяющая его.

if(isset($_POST['Add'])) 
+0

форма тегов? где вы имеете в виду – Nina555

+0

nevermind я получил это! Он отлично работал благодаря большому количеству! – Nina555

+0

Это хорошо. Но y not isset submit и зачем добавлять дополнительный вход? В любом случае, я получил свой голос – devpro

1

Замените эту строку

if (isset($_POST['Add'])) 

С

if (isset($_POST['submit'])) 

примечание стороны:

На error_reporting в верхней части страницы.

Второй вопрос заключается в том, что, как я уже говорил в комментариях, если вы используете INSERT запрос в MYSQL не SQL, чем вы можете следовать этому примеру:

INSERT INTO table (column1, column2...) VALUES (value1, value2...) 
+0

Yeeah я заметил это спасибо :) – Nina555

+0

Посмотрите на свой запрос 'INSERT jobs SET' ; -) не единственное, что им не удается. Трудно сказать, что они хотят здесь делать. INSERT? UPDATE? –

+0

(INSERT jobs. *, categories.category_name FROM jobs LEFT JOIN vacancies.categories ON categories.category_id = jobs .category_id 'SET id =' $ id ', title =' $ title ', зарплата =' $ зарплата ', description =' $ description ', category =' $ category_name '") будет ли это лучше, поскольку я обычно использую это, но Я попытался, если он будет работать, если я просто поместил имя таблицы и все еще работает так, НО только одна строка не показывается по какой-то причине – Nina555