2014-10-20 4 views
0

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

У меня есть следующая форма формы код.

<form name="form3" method="post" action=""> 

    <?php while ($row_news1 = mysql_fetch_assoc($rs_news1)) { ?> 

<input type="checkbox" name="check1[]" value="1" <?php if($row_news1['house']=='1') echo "checked=\"checked\""; ?>> 


<input type="checkbox" name="check2[]" value="1" <?php if($row_news1['add_item']=='1') echo "checked=\"checked\""; ?>> 



<input type="text" name="user_name[]" id="textfield" readonly style="width:50%;color:white;background-color:transparent" value="<?php echo $row_news1['FirstName'].'&nbsp;'.$row_news1['LastName']; ?>"><br> 


<input type="hidden" name="user_id[]" value="<?php echo $row_news1['UserID']; ?>"> 


<?php } ?> 


<input type="submit" value="Submit" name="update" class="but">  

<input type="submit" value="Reset" name="reset" class="but"> 

</form> 

Я хочу, чтобы размер записи имени пользователя попал в массив. В это время будут установлены два флажка. Поэтому, когда я проверил все флажки, чтобы обновление таблицы прошло успешно. Но когда я хочу проверять некоторые флажки случайным образом. Соответственно, их соответствующая запись будет обновляться с помощью значения 1 и всех других непроверенных флажков. Соответствующая запись будет обновлена ​​со значением 0.

Вот мой код представления формы.

if(isset($_POST['update'])&& $_POST['user_name']!=''){ // checking if Update button clicked 

$user_id=$_POST['user_id']; // Getting all user_id 

$user_name= $_POST['user_name']; //Getting user name text box 

$check1=$_POST['check1'];// Getting all check boxes but in this case its only taking checked boxes. 

$check2=$_POST['check2']; 


     for($i = 0; $i < count($user_name); $i++){ // iterating the code until we have user name. 

      if($check1[$i]=='1'){ // checked if first checkbox value is 1 so assign 1 to Variable a. other wise 0; 

       $a=1; 

      } 

      else { 

       $a=0; 


      } 

      if($check2[$i]=='1'){ // same as above i want 

       $b=1; 

      } 

      else { 

       $b=0; 

      } 

      // this is the query that i want to update the rocord 

      $query_u1 = "UPDATE Users 

       SET 

       house = '".$a."', 

       add_item = '".$b."' 

       WHERE UserID=".$user_id[$i]; 

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


     } 

     echo '<script> window.location = "adminmain.php";</script>'; 

} 

В приведенном выше коде показан код запроса Php и mysql.

Теперь я хочу, чтобы я установил все флажки или нет. просто другие вещи. Значит, у меня 10 записей для пользователей. Каждая запись имеет свой UserId и имя. С каждой записью у меня есть два флажка, как показано в коде.

Я хочу, когда я проверил 5 флажков Случайно. поэтому эти пять соответствующих записей будут обновлены с 1 значением. и другие пять флажков соответствующей записи будут обновлены с 0 значением.

Я думаю, вы, люди, получите его сейчас.

+0

Я понимаю, что английский - это не ваш первый язык, это прекрасно, но не могли бы вы попытаться снова объяснить вопрос? Я не понимаю, спасибо. –

+0

Спасибо за ваш ответ. Я хочу, когда я отправил форму с помощью кнопки «Отправить». Поэтому я поставлю проверочные флажки, значение которых равно 1, и обновит их соответствующую запись в таблице базы данных со значением 1. Таким образом, отмеченные флажками флажки я хочу, чтобы время, когда я отправляю форму с 0. и обновляю их соответствующую запись в таблице базы данных со значением 0. –

+0

У меня есть 10 Запись пользователей. Каждая запись имеет свой UserId и имя. С каждой записью у меня есть два флажка, как показано в коде. поэтому у всех галочек у меня есть 20 Я хочу, когда я проверил 7 флажков Случайно. поэтому эти семь соответствующих записей будут обновлены с 1 значением в таблице базы данных.и другие 13 флажков, отмеченных флажками, соответствующей записи в таблице базы данных, должны быть обновлены с использованием значения 0. –

ответ

0

Хорошо, это на самом деле очень просто. Начните с основной формой:

<form method="post" action=""> 
    <input type="checkbox" name="my_checkboxes[]" checked> 
    <input type="checkbox" name="my_checkboxes[]"> 
    <input type="checkbox" name="my_checkboxes[]"> 
</form> 

Затем построить в Админцетре с php

if(isset($_POST['my_checkboxes'])){ 
    foreach($_POST['my_checkboxes'] as $key => $val){ 
     // Update database with $val Update DB set col = '$val' (use prepared statements for security) 
    } 
} 

Этот код может быть значительно улучшился, но это даст вам общее представление. Один важный примечание, php будет передавать только checked checkboxes. Так что имейте это в виду.

Одним из способов преодоления этой потенциальной проблемы является добавление скрытого входа для каждого чекбокса, что у вас есть, так что ваш форум может измениться, чтобы выглядеть следующим образом (примечание: удаление скобок из атрибута name):

<form method="post" action=""> 
    <input type="checkbox" name="my_checkbox1" value="sent" checked> 
    <input type="hidden" name="my_checkbox1" value=""> 
    <input type="checkbox" name="my_checkboxe2"> 
    <input type="hidden" name="my_checkbox2" value=""> 
</form> 

Теперь, используя PHP, вам просто нужно определить, является ли значение sent, или если значение равно empty. Если значение sent, оно проверено, в противном случае оно не отмечено.

+0

Да, я знаю, что мы можем передавать только отмеченные флажки. Но мои проблемы в том, что. я хочу оба. как вы привели мне пример. я проверил первый флажок и получил его значение. Например, 1. На этот раз я хочу, чтобы два других значения флажка были равны 0. Как это будет сделано со скрытым полем ввода с тем же именем, что и флажок со значением 0? –

+0

@MuhammadAtiq См. Обновленный ответ, который решает вашу проблему. –

+0

Флажок не ограничен. его до моего sql-запроса, насколько записывается его ложь. –

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