从表中删除一列,使用PHP MYSQL更新另一列

时间:2014-03-18 13:26:19

标签: php mysql sql

我有两张桌子。一个表是匹配表(e2wedstrijden),另一个表是我的得分表,其中获得了积分等(e2teams)。

现在我可以删除 e2wedstrijden 表中的匹配项。这很好。

但是如果我从该表中删除一个匹配项,我希望如此。它还会向表中添加或减少点数(“e2teams”)。我试图比较表格,但这不起作用。

所以我想要例如:

如果($row['thuisscore'] == $row['uitscore'])我的 e2wedstrijden 表中的行名称是什么。所以如果这两个是相同的(比如0-0或1-1或者什么),那么它需要从表 e2teams 中减少1点。但只有那些与我的 e2wedstrijden 表中的“Thuisteam”和“Uitteam”行相同的团队。所以Row Thuisteam(在“e2wedstrijden”中)需要在(“e2teams”)排队中找到相同的结果。这需要与Row Uitteam相同(在“e2wedstrijden”中)需要在(“e2teams”)中找到相同的结果

Thuisteam和Uitteam =家庭团队和旅行团的荷兰人。我认为我的错是系统无法将 e2wedstrijden 中的'Thuisteam'链接到 e2teams 中的团队,但不知道如何解决它

这是我的 deletematches.php ,它会删除匹配但不会减少或添加点数:

    <?php
if(!isset($_COOKIE['E2ingelogd'])) {
header("location:../../index.php");
}
include "../../connect.php";
$dbhandle = mysql_connect($hostname, $username, $password) or die("Could not connect to database");
$selected = mysql_select_db("login", $dbhandle);
$result = mysql_query("SELECT * FROM e2wedstrijden WHERE ID = ".$_GET['del']."");

while($row = mysql_fetch_assoc($result)){

if( $row['thuisscore'] == $row['uitscore']){
      echo $row['thuisscore'];
      mysql_query("UPDATE e2teams SET Punten = Punten-1 WHERE Team ='".$row['Thuisteam']."'");
      mysql_query("UPDATE e2teams SET Gespeeld = Gespeeld-1 WHERE Team = ('".$row['Thuisteam']."'");
      mysql_query("UPDATE e2teams SET Verloren = Gelijk-1 WHERE Team ='".$row['Uitteam']."'");
      echo "Team is deleted";
    }else{
       echo 'Update Error!';
    }
}


$table_1_delete = mysql_query("DELETE FROM e2wedstrijden WHERE ID = ".$_GET['del']."");


    ?>

这是我的 e2teams 表: E2teamstable

这是我的 E2wedstrijden 表格: E2wedstrijdentable

所以我需要这样的东西:

UPDATE e2teams SET Punten = Punten-1 WHERE Team = Look in table ("e2wedstrijden) deleted Thuisteam and deleted Uitteam

希望你能帮忙

2 个答案:

答案 0 :(得分:3)

您已在&#34; gespeeld&#34;的第二个查询中添加了一个额外的括号。在等号后面:

mysql_query("UPDATE e2teams SET Gespeeld = Gespeeld-1  
WHERE Team = ('".$row['Thuisteam']."'");

这是不是在更新?

答案 1 :(得分:0)

如果不能100%确定数据模型的工作原理,那么重构您拥有的内容可能会有所帮助。可能有用的东西是创建摘要表的视图,只更新子/主表中的数据....聚合在视图层中。可以看到mysql中的视图here

如果你不熟悉你拥有的数据模型(遗留应用程序等),你可以查看触发器,如果​​你必须修改两个表中你可能想要考虑存储过程或触发器的数据,讨论{{3} }和here

我想到的第三件事是围绕相关的子查询以及如何在某种更新中引用另一个表。但是,在这种情况下,您不是ID的代理密钥。

另外,看一下sql注入;我有一段时间没看过PHP,但那些sql语句看起来好像是用sting组合创建的

祝你好运,