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>";
?>
4

4 に答える 4

1
   $checkSAT = isset($_POST['checkinsat']) ? "yes" : "no";
于 2012-06-02T04:10:40.747 に答える
0
SET checkinsat = '$checkSAT' ...

PHP では、変数は大文字と小文字を区別します。

于 2012-06-02T04:12:31.373 に答える
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'");
于 2012-06-02T05:04:45.763 に答える
0

兄弟 !

  1. while ループ内に form タグを入れていることに気付きましたか? この生成された Web ページのビュー ソースをチェックして、そこに表示されている html フォーム タグの数を確認してください。HTMLフォームタグをループ内に配置するのは間違ったアプローチです。代わりにフォーム要素でループを使用する必要があります。

  2. DB 列に yes/no を保存する代わりに、1 と 0 の値を保存することをお勧めします。

于 2012-06-02T08:43:09.057 に答える