2015-09-15 4 views
3

У меня есть оператор SQL, который должен ОБНОВИТЬ запись в моей БД.Сообщение об успешном обновлении PHP-обновления независимо от его выполнения

Заявление работает, но оно отображает сообщение об успешном завершении до нажатия кнопки. Таким образом, сообщение об успешности всегда отображается.

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

Вот мой код:

try { 

    $conn = new PDO('mysql:host=' . Config::get('mysql/host') . ';dbname=' . Config::get('mysql/db'), Config::get('mysql/username'), Config::get('mysql/password')); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    $job_id = $_GET['job_id']; 

    $jobs = DB::getInstance()->query("SELECT * FROM jobs WHERE job_id=$job_id"); 

    $job_title = isset($_POST['job_title']) ? $_POST['job_title'] : ''; 
    $date = isset($_POST['date']) ? $_POST['date'] : ''; 
    $location = isset($_POST['location']) ? $_POST['location'] : ''; 
    $type = isset($_POST['type']) ? $_POST['type'] : ''; 
    $description = isset($_POST['description']) ? $_POST['description'] : ''; 
    $education = isset($_POST['education']) ? $_POST['education'] : ''; 
    $experience = isset($_POST['experience']) ? $_POST['experience'] : ''; 
    $competencies = isset($_POST['competencies']) ? $_POST['competencies'] : ''; 
    $how_apply = isset($_POST['how_apply']) ? $_POST['how_apply'] : ''; 

    $sql = "UPDATE jobs SET job_title='$job_title', date='$date', location='$location', type='$type', description='$description', education='$education', experience='$experience', competencies='$competencies', how_apply='$how_apply' WHERE job_id=$job_id"; 
    $result = $conn->prepare($sql); 
    $result->execute(); 

    echo $result->rowCount() . ' record updated successfully'; 
    Redirect::to('manage_jobs.php'); 

} catch (PDOException $e) { 
    echo $sql . '<br />' . $e->getMessage(); 
} 

Кроме того, если запрос якобы успешный, он должен перенаправить вас обратно в список, если записи, но, как только вы открываете запись и нажмите на ссылку UPDATE , он перенаправляет назад, но заменяет текущие данные пустым значением, даже не давая мне возможности обновить что-либо. Он не открывает форму обновления.

+1

'Redirect' ==' header ('Location:') '?? –

ответ

2

Вы должны обернуть свой код, чтобы если

if (isset($_POST['job_title'])) { 
    //Your entire code that you posted 
} 

И вы должны предварительно compilate все входы, так как в противном случае, он наполнит вас с пустыми входами.

+0

Удивительный, спасибо. – Deon

Смежные вопросы