Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 递减数据库中特定列的值_Php_Mysql_Sql - Fatal编程技术网

Php 递减数据库中特定列的值

Php 递减数据库中特定列的值,php,mysql,sql,Php,Mysql,Sql,以下是代码的一部分: $query1 = "SELECT * FROM table4 WHERE dr_id='{$drid}'"; $result1=mysql_query($query1,$con); $values1= mysql_fetch_array($result1); echo "<br>".$values1['mor_max']; $i=

以下是代码的一部分:

$query1 = "SELECT * FROM table4 WHERE dr_id='{$drid}'";  
                $result1=mysql_query($query1,$con);
                $values1= mysql_fetch_array($result1);
                echo "<br>".$values1['mor_max'];
                $i=$values1['mor_max'];
                $i--;
                echo "<br>".$i;
                $query2="UPDATE table4 SET mor_max= $i WHERE dr_id='{drid}'";

                $result2=mysql_query($query2,$con);

                $values2= mysql_fetch_array($result2);
                echo "<br>".$values2['mor_max'];
$query1=“从表4中选择*,其中dr_id='{$drid}';
$result1=mysql\u查询($query1,$con);
$values1=mysql\u fetch\u数组($result1);
回显“
”$values1['mor_max']; $i=$values1['mor_max']; $i--; 回声“
”$i; $query2=“updatetable4 SET mor_max=$i,其中dr_id='{drid}'; $result2=mysql\u查询($query2,$con); $values2=mysql\u fetch\u数组($result2); 回声“
”$values2['mor_max'];
在更新查询中使用$i不会产生错误。可以吗?我是php的新手,所以请帮助我。
我得到的另一个警告是“mysql\u fetch\u array()期望参数1是资源,给定布尔值”。请建议更有效的方法来执行此操作。

减少此查询就足够了:

UPDATE table4 SET mor_max=mor_max-1 WHERE dr_id='{drid}'

您可以在查询中轻松做到这一点

$query = "UPDATE table4 SET mor_max= mor_max -1 WHERE dr_id='{$drid}'";
mysql_query($query, $con);
$query1=“从表4中选择*,其中dr_id='{$drid}';
$result1=mysql\u查询($query1,$con);
$values1=mysql\u fetch\u数组($result1);
回显“
”$values1['mor_max']; $i=$values1['mor_max']; $i--; 回声“
”$i; $query=“updatetable4 SET mor_max=$i,其中dr_id='{drid}'; $result=mysql\u查询($query2,$con); $query2=“从表4中选择*,其中dr_id='{$drid}'”; $result2=mysql\u查询($query1,$con); $values2=mysql\u fetch\u数组($result2); 回声“
”$values2['mor_max'];
此代码将起作用。 您得到的是“mysql\u fetch\u array()期望参数1是资源,布尔给定的”,因为您正在第二个查询中更新,并试图通过更新数据库的方式获取相同的查询。
之后,您应该使用select语句,您可以在要求参数为resource的特定查询上使用mysql_fetch_array()。

不要再使用mysql扩展(特别是在创建新项目时)!切换到MySQLi或PDO。关于您的错误消息,您是否已经搜索过Internet?这是很普遍的。好的,明白了。谢谢!。但是我如何打印新mor_max的值呢?您必须在第二次查询中选择它…请澄清..意味着我需要再次调用select query@Lajos Veresyes。您必须再次调用select查询。
$query1 = "SELECT * FROM table4 WHERE dr_id='{$drid}'";  
                $result1=mysql_query($query1,$con);
                $values1= mysql_fetch_array($result1);
                echo "<br>".$values1['mor_max'];
                $i=$values1['mor_max'];
                $i--;
                echo "<br>".$i;
                $query="UPDATE table4 SET mor_max= $i WHERE dr_id='{drid}'";
                $result=mysql_query($query2,$con);
$query2 = "SELECT * FROM table4 WHERE dr_id='{$drid}'";
                $result2 = mysql_query($query1,$con);
                $values2= mysql_fetch_array($result2);
                echo "<br>".$values2['mor_max'];