2012-06-02 6 views
0

У меня возникли проблемы с обновлением столбца до да, если он установлен. Однако я не получаю никаких ошибок. Что я делаю не так? Я пробовал несколько методов, включая вывод массива из кавычек и из него. Я знаю, как это сделать с помощью формы с адресом электронной почты, но не с флажками. Я также знаю, как удалять строки из базы данных с помощью флажков. Но не обновляют ...Обновить столбец базы данных с флажком

<?php 
     $id = $_GET['id']; 
     $select = mysql_query("SELECT * FROM volsMain WHERE ID = '$id'"); 
     $data = mysql_fetch_array($select); 
    ?> 

    <?php 
     $query="SELECT * FROM volsMain ORDER BY shift_times, position"; 
     $result = mysql_query($query) or die(mysql_error()); 
     while ($row = mysql_fetch_array($result)){  
    ?> 

    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    <input type="hidden" name="id" value="<?php echo $id; ?>" /> 
    <input type="checkbox" name="checkinsat" value="yes"<?php 
      if($data['checkinsat'] == 'yes') echo 'checked'; ?>/> 
     <input type="submit" > 
    </form> 

    <?php 
    if ($row['saturday'] === 'A.M.') { 
     echo '<span class="amShift">'; 
    } else if ($row['saturday'] === 'P.M.') { 
     echo '<span class="pmShift">'; 
    } else { 
    echo '<span>'; 
    } 
    echo "SATURDAY:" . $row['saturday'] . '</span><br />'; 

    if ($row['sunday'] === 'A.M.') { 
    echo '<span class="amShift">'; 
    } else if ($row['sunday'] === 'P.M.') { 
    echo '<span class="pmShift">'; 
    } else { 
    echo '<span>'; 
    } 

    echo "SUNDAY:". $row['sunday'] . '</span><br />'; 
    echo "<br />SHIRT SIZE:<h2>" . $row['shirt'] . "</h2>"; 
    echo "<br />VOLUNTEER NAME:<h2>" . $row['agreeName'] . "</h2>"; 
    echo "<p>Assigned as a volunteer for:<br />" . $row['position'] . "</p>"; 
    echo "<p>Shift times are scheduled for:<br />" . $row['shift_times'] . "</p>"; 
    echo "<p>Shifts have been confirmed:<br />" . $row['confirmed'] . "</p>"; 
    echo "<p>Checked in Friday:<br />" . $row['checkinfri'] . "</p>"; 
    echo "<p>Checked in Saturday:<br />" . $row['checkinsat'] . "</p>"; 
    echo "<p>Checked in Sunday:<br />" . $row['checkinsun'] . "</p>"; 
} 
?> 

<?php 
    $checkSAT = isset($_POST['checkinsat']) ? "yes" : "no"; 
    $updateSat = mysql_query("UPDATE volsMain SET checkinsat = '$checkSAT' WHERE ID = '$id'"); 
    $query = mysql_query($updateSat); 
    $result = mysql_query($query); 
    echo "<p>" . print_r($checkSAT) . "</p>"; 
?> 
+0

Попробуйте это $ checkSAT = ($ _POST ['checkinsat'] == '1')? "да нет"; и в запросе проверьте свою переменную $ query = mysql_query ("UPDATE volsMain SET checkinsat = '$ checkSAT' WHERE ID = '$ id'"); –

+0

Я исправил этот случай, и он по-прежнему не обновляет столбец «checkinsat» до «да» – Commandrea

+0

Попробуйте распечатать $ _POST и посмотреть, какое значение вы используете в ключе «checkinsat». –

ответ

0

Брат!

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

  2. Вместо сохранения да/нет в столбце БД я бы рекомендовал сохранить 1 & 0 значений.

1
$checkSAT = isset($_POST['checkinsat']) ? "yes" : "no"; 
+0

Не повезло с этим ... – Commandrea

+0

Можете ли вы показать, что ошибка –

+0

У меня нет ошибки? Возможно, у меня неверный запрос ошибки? – Commandrea

0
SET checkinsat = '$checkSAT' ... 

переменной чувствительно к регистру в PHP.

+0

$ query = mysql_query (...); $ result = mysql_query ($ query); // Я думаю, что $ query должен быть строкой, а не ресурсом. – luish

0

Просто быстро, глядя на него, может быть, что ваш код:

$updateSat = mysql_query("UPDATE volsMain SET checkinsat = '$checkSAT' WHERE ID = '$id'"); 

... вместо этого следует:

$updateSat = mysql_query('UPDATE volsMain SET checkinsat = ' . $checkSAT . ' WHERE ID = ' . $id . ''); 

?

же должны пойти:

$select = mysql_query("SELECT * FROM volsMain WHERE ID = '$id'"); 

к:

$select = mysql_query('SELECT * FROM volsMain WHERE ID = ' . $id . ''); 

Вот то, что наверняка отрывочна хотя:

$updateSat = mysql_query("UPDATE volsMain SET checkinsat = '$checkSAT' WHERE ID = '$id'"); 
$query = mysql_query($updateSat); 
$result = mysql_query($query); 

$ updateSat не чистый SQL-запрос и не следует вызывать в «mysql_query». Если вы хотите, чтобы его называли $ result, просто выполните:

 $result = mysql_query("UPDATE volsMain SET checkinsat = '$checkSAT' WHERE ID = '$id'"); 
Смежные вопросы