【问题标题】:Update value in mysql database column with checkbox in php [duplicate]用php中的复选框更新mysql数据库列中的值[重复]
【发布时间】:2013-09-27 07:09:48
【问题描述】:

我在php中有以下代码

$countryiso = mysql_query("SELECT distinct name as name FROM location_country where code NOT IN('A1','A2','AP','EU') order by name");
echo '<table>';
echo '<th>Country</th><th> Add/Remove </th>';
while ($row = mysql_fetch_assoc($countryiso)) {
 echo '<tr>';
 echo '<td>'. $row['name'] . '</td>';
 echo '<td><form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"><input type="hidden" name="id" value="<?php echo $id; ?>" /><input type="checkbox" name="checkinsat" value="1"<?php if($data['checkinsat'] == '1') echo 'checked'; ?>/><input type="submit" ></form></td>';
 echo '</tr>';
}
 echo '</table>';

我得到了错误

解析错误:语法错误,意外的 T_STRING,需要 ',' 或 ';'不知道我在哪里弄错了。

【问题讨论】:

    标签: php mysql checkbox


    【解决方案1】:

    不要使用php标签将echo的参数插入表单,而是使用字符串连接。

    变化:

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

    到:

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

    此外,不要使用 mysql_* 函数 - 它已被弃用(请参阅 red box)并且容易受到 sql 注入的影响。使用PDOMySQLi

    【讨论】:

      【解决方案2】:

      问题是您在第 7 行的回声。您在回声中执行&lt;?php echo ... ?&gt;。您应该改为将值连接到字符串中。

      代替:

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

      试试这个:

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

      【讨论】:

        【解决方案3】:

        这里有错别字

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

        应该是

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

        你在 php 标签中写了&lt;?PHP ... ?&gt;,这会导致这个错误

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-08-16
          • 1970-01-01
          • 2016-12-14
          • 1970-01-01
          • 2014-11-04
          • 1970-01-01
          • 2014-10-20
          • 2018-07-27
          相关资源
          最近更新 更多