2012-02-27 2 views
2

Я пытаюсь обновить мою таблицу MYSQL в зависимости от того, хочет ли пользователь отмечать элемент из списка. SO, если элемент A отмечен, снимите флажок. если элемент A не установлен, проверьте его. Когда я использую свой скрипт ниже, ничего не происходит, и я не уверен, почему или что-то даже не так. Ошибок не возникает. Это запускается, когда пользователь нажимает кнопку проверки. Он отправляет его переменным id и c.Обновление таблицы MYSQL в PHP

$ _GET [ 'с'] всегда должно быть 1 или 0, Id является uniqid()

<?php 

require_once('db.php'); 

if(!isset($_GET['id'])){ 
    echo "You didn't supply a item (id)"; 
    header('HTTP/1.1 417 Expectation Failed'); 
    exit(); 
} 

if(!isset($_GET['c'])){ 
    echo "You didn't supply a item (c)"; 
    header('HTTP/1.1 417 Expectation Failed'); 
    exit(); 
} 

if ($_GET['c'] == 0) 
{ 
$query = "UPDATE todo_item 
      SET checked = 1 
      WHERE todo_id = :id"; 
} 
else 
{ 
$query = "UPDATE todo_item 
      SET checked = 0 
      WHERE todo_id = :id"; 
} 

$id = $_GET['id']; 

$statement = $db->prepare($query); 
$statement -> execute(array(
    'todo_id' =>$id, 
)); 

header("Location: index.php"); 

?> 
+2

Измените 'todo_id '=> $ id' на'' id '=> $ id'. – Travesty3

+0

echo $ statement после $ statement = $ db-> prepare ($ query); и скажите, что вы получаете плюс я запутался в этой части $ statement -> execute (array ( 'todo_id' => $ id, )); –

ответ

2

Я думаю, что вы передаете неправильный параметр в execute. Попробуйте это:

$statement -> execute(array(
    ':id' =>$id, 
)); 
+0

Вы были правы. Его всегда глупые мелочи, которые вы не можете видеть своими глазами, потому что вы много раз смотрели на нее. Благодаря! –

1

Вы связывание :id в подготовленном заявлении, но когда вы выполняете его, вы передаете массив ключом todo_id. Измените его соответствующим образом:

$statement -> execute(array(
    ':id' =>$id, 
)); 
Смежные вопросы