2013-06-19 3 views
0

Как видно из названия, у меня возникла проблема с обновлением флажка, который уже имеет данные в моей базе данных SQL.Обновление данных флажка в SQL-базе данных с помощью PHP

Мой код выглядит следующим образом:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
Name <input type"text" name="inputName" value="<?php echo $hemsida['Namn']; ?>" /> </br> 
Commentar <input type"text" name="inputComment" value="<?php echo $hemsida['Comment']; ?>" /> 
<br/> 
</br><input type="checkbox" name="inputAll" value="checked" <?php echo $hemsida['All']; ?>/>Alla 
<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>" /> 
<input type="submit" name="submit" value="Redigera"> 

<?php 

if(isset($_POST['submit'])) { 
    $u = "UPDATE hemsida SET `Namn`='$_POST[inputName]', `Comment`='$_POST[inputComment]', `ALL`='$_POST[inputALL]' WHERE ID = $_POST[id]"; 
    mysql_query($u) or die(mysql_error()); 

    echo "User has been modified"; 
    header("Location: ..//sokh.php"); 
} 
?> 

Эхо $ hemsida [ 'НАМН'], [ 'Comment'] и [ 'All'] просто приносит и показывает старые данные, которые находятся в базе данных, но я не понимаю, что делать, чтобы обновить флажок. Я везде искал, но я застрял. Заранее спасибо!

+0

Часть кода исчезла, проблема во втором PHP части (что только что вернулся), который подбирает форму. Я вижу, как все еще остается неясным вопрос. Это мой первый вопрос в моей жизни в Stack Overflow. ALL = '$ _ POST [inputALL] - это вещь, которая вообще не собирает данные. Не знаю, как заставить его работать. Спасибо за быстрый ответ! Значение «проверен», поэтому все работает, когда оно входит в «Модификатор» или что я должен его назвать. Проблема в том, чтобы вернуть его. –

+0

Я обновляю свой ответ, если это то, что вам нужно – medBo

ответ

0

Ваш вопрос непонятен, но я думаю, что у вас есть столбец в базе данных с именем «все»? и, возможно, этот столбец может принимать только 1 значение (true или false) !!

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

<input type="checkbox" name="inputAll" checked="<?php if($hemsida['All'] == true) echo checked; ?>" />Alla 

не используют значение = «», использование проверяется вместо , тогда проверьте значение $ hemsida ['All'], если это правда, эхо проверено еще что-нибудь делать

для вашего php-кода и серверной части вашего приложения вы можете просто проверить, установлен ли флажок, а затем у вас есть выбор для чего вы хотите назначить свой столбец в базе данных, например, если флажок установлен, создайте переменную (например, $ value_of_checkbox) и присвойте значение («true» для Примеру) этой переменной, а затем включить эту переменную в коде SQL для столбца базы данных обновления:

if (isset($_POST['inputALL'])) { 
     $value_of_checkbox = true; 
    } 
    else { 
     $value_of_checkbox = false; 
    } 

    if(isset($_POST['submit'])) { 
     $u = "UPDATE hemsida SET `Namn`='$_POST[inputName]', `Comment`='$_POST[inputComment]', `ALL`='$value_of_checkbox' WHERE ID = $_POST[id]"; 

    mysql_query($u) or die(mysql_error()); 

    echo "User has been modified"; 
    header("Location: ..//sokh.php") 

примечание: я изменить также SQL кода в этой части: ALL='$value_of_checkbox'

+0

Часть кода исчезла, проблема во второй части PHP (которая только что вернулась), которая поднимает форму. Я вижу, как все еще остается неясным вопрос. Это мой первый вопрос в моей жизни в Stack Overflow. ALL = '$ _ POST [inputALL] - это вещь, которая вообще не собирает данные. Не знаю, как заставить его работать. Спасибо за быстрый ответ! Значение «проверен», поэтому все работает, когда оно входит в «Модификатор» или что я должен его назвать. Проблема в том, чтобы вернуть его. –

+0

у вас в таблице базы данных есть столбец «ВСЕ», я прав? и у вас есть флажок с именем inputAll?когда вы отправляете свою форму, этот флажок, если установлен -> $ _POST ['inputALL], существует, если не установлен ---> $ _POST [' inputALL '] не существует, я скажу вам, чтобы убедиться, что с if (isset ($ _POST ['inputALL'])) это означает, что если ваш флажок установлен, тогда я создаю переменную и присваиваю ей значение true, иначе я назначаю false, и, наконец, передаю эту переменную в код sql: ALL = $ variable вместо ALL = "$ _POST [inputALL] – medBo

0

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

if($conditionForCheck){ 
    $inputAll = ' checked="checked"'; 
} 

Затем в форме

<input type="checkbox" name="inputAll"<?php echo $inputAll; ?> /> 
+0

Часть кода исчезла, проблема во второй части PHP (которая только что вернулась), которая поднимает форму. Я вижу, как все еще остается неясным вопрос. Это мой первый вопрос в моя жизнь в переполнении стека. 'ALL' = '$ _ POST [inputALL]' - это то, что вообще не собирает какие-либо данные. Не знаю, как заставить его работать. Спасибо за быстрый ответ! «проверен», поэтому все работает, когда оно входит в «Модификатор» или что я должен его называть. Проблема в том, чтобы вернуть его. –

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