php - 比较数据并更新表格

标签 php html mysql

我有两个表:voted_sites(USN,URL,vote,votefor)sites(URL,status,upvotes,downvotes,id)

对于登录用户,我根据他给出的有效投票更新了他的声誉,存储在声誉字段中,其中 voted_sites 包含他投票的内容,而站点表是站点结果的位置(要么被阻止,要么被阻止)。

如果用户也赞成解锁并且站点表状态也解锁,那么我必须将他的声誉增加 5,这应该发生(遍历)所有元组并为用户提供最终的声誉评分.

我尝试了很多方法,但都没有成功。 当您只能使用 mysqli_fetch_assoc($sql) 连接到 1 个表时,我不知道如何同时对 2 个表进行操作。

这是我尝试过的:

<!Doctype html>
<html>
<?php
$c=$_GET['param'];// users name
$d=$_GET['param1'];// usesrs id
$e=$_GET['param2'];//  users repute


// Create connection
$con=mysqli_connect("localhost","root","","repute system");
    if(mysqli_connect_errno()){
        echo "ERROR ".mysqli_connect_error();
} 

$qwe = mysqli_query($con,"SELECT * FROM sites");
$sql = mysqli_query($con,"SELECT * FROM v_sites");
if (mysqli_num_rows($sql) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($sql)) 
    {
        
        if($d == $row['teacher_id'])
        {
            while ($raw = mysqli_fetch_assoc($qwe))
            {       
                 $rt = $row['votefor'];
                 $qt = $raw['status'];
                    if($row == $raw)
                    {
                        $er = mysqli_query($con,"UPDATE teacher set repute = repute + '5'  where name == '$c' ");
                    }
                    else 
                    {
                        $er = mysqli_query($con,"UPDATE teacher set repute = repute - '5'  where name == '$c' ");
                    }
            }
            
      
       }
    }
}
 
?>
</html>

最佳答案

您在两个 where 子句中使用了两个等号而不是一个,并且在您希望增加的数字周围使用了字符串文字。

UPDATE teacher set repute = repute + '5'  where name == '$c'
                                                     ^^

UPDATE teacher set repute = repute - '5'  where name == '$c'
                                                     ^^

这些应该读作:

UPDATE teacher set repute = repute + 5  where name = '$c'

UPDATE teacher set repute = repute - 5  where name = '$c'

分别。

测试时,将或 die(mysqli_error($con)) 添加到 mysqli_query() 中,以便查看开发过程中出现的语法错误(如果有)。

  • 旁注:确保您的 repute 列确实是 int 并且长度正确。
<小时/>

添加error reporting到文件顶部,这将有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:错误报告只能在暂存阶段完成,而不能在生产阶段完成。

关于php - 比较数据并更新表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29936340/

相关文章:

php - 使用 UTF8 编码阿拉伯语

php - 如何设置YII2多数据库可配置?

javascript - 如何制作基于个人浏览器的动态 GUI

php - 解析网页时插入mysql错误

c++ - Qt在不在主类中的函数中执行SQL命令

php - 使用 composer 加载非命名空间类

php - SQL 选择具有匹配值的行

javascript - 使用 XPage 或 HTML 打印页眉和页脚

html - 构建和 Bootstrap 我的 RoR 应用程序

php - Php : Everything below the header is invisible in firefox, 中可能出现错误,但在 chrome 中工作正常