在表单发送后,根据选定的选项将数据库值从0更新为1

时间:2017-05-08 23:59:47

标签: php mysql

我的问题似乎很简单,但我对PHP知之甚少。

我有两张桌子:

表1:**证书** /表2:**键**

他们没有相同的订单或数量的列。 Table2具有预先确定的值,而table1是干净的,接收用户插入的数据。

用户使用表单将数据插入table1。在这种形式中,有一个select填充了table2中的数据。

选择选项是键,如:

1112,1113,1114等

我需要的是当用户在table1中插入其中一个键时,table2中键的状态从0更新为1.(因此键不会显示在选择中)。

以下是将数据插入table1的代码

<?php
if ($registro != "") {
    include("conexao-certificado.php");
    $conexao = @mysql_connect($host, $user, $pass)
        or die("Cadastro");
    $query = "INSERT INTO certificados VALUES ('$id','$registro','$aluno','$professor','$escola','$publicado_por','$registrado_por','$ano','$curso','$cpf','$grade', now() );";
    mysql_query($query, $conexao);
    $url = basename($_SERVER['PHP_SELF']);
    echo "<script>window.location='$url'</script>";
} else {

}

?>

以下是填充选择的代码:

<?php
include("conexao-certificado.php");
$conexao = @mysql_connect($host, $user, $pass);
if (!$conexao)
    die("Nao foi possivel conectar no servidor MySQL. Erro: " . mysql_error());
mysql_select_db($db) or die("Nao foi possivel usar o banco de dados. Erro: " .
        mysql_error());
$palavra = str_replace(" ", "%", $HTTP_POST_VARS[palavra]);
$qr = "SELECT idchave FROM chaves WHERE (publicado_por LIKE '%" . $_SESSION['nome'] . "%" . $_SESSION['sobrenome'] . "%' AND status LIKE '0' )  ORDER BY idchave ASC;";
$sql = mysql_query($qr);

?>
<select name="registro" id="registro">
    <?php
    echo '<option value="">Selecione a chave</option>';
    while ($r = mysql_fetch_array($sql)) {
        echo '<option value="' . $r['idchave'] . '">' . $r['idchave'] . '</option>';
    }

    ?>
</select>

我尝试在INSERT之后放置它,但只有在我指定“idchave = 1112”之类的键时它才有效。

$atualiza = "UPDATE chaves SET status=1 WHERE idchave=$registro;";
mysql_select_db($db);
mysql_query($query,$conexao);
mysql_query($atualiza,$conexao);

我找到了解决方案。所以这就是我做的。 首先在table1中创建一个列,状态始终为1,而在table2上,状态始终为0。

之后我在代码中添加了一个INNER JOIN。

以下是代码:

$atualiza = "UPDATE chaves c1
INNER JOIN certificados c2 ON c1.registro = c2.registro
SET c1.status = c2.status;";
mysql_query($atualiza,$conexao);

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

为了实现目标,

在table1上插入查询后

为table2创建更新查询 将状态更新为1, 更新你的table2后,

在下拉列表选择查询中添加条件,以仅显示table2上状态为0的字段

以便它不再显示在选择上