繁体   English   中英

需要在表中的列中找到最高值并增加该值

[英]Need to find highest value in a column in table and increment that

我是php的初学者,所以请温柔.. :-)我已经找到了答案,但我一次又一次得到同样的错误。 我找不到错误,它让我疯了!

$query = "SELECT position FROM pages WHERE subject_id = '$subject_id' ORDER BY position DESC LIMIT 1";
$bla = mysql_query($query, $connection);
$position = $bla[0];
$position += 1;

好的,上面的代码位于我的页面顶部。 根据我的理解,这应该执行以下操作:从表'pages'获取名为'position'的列,其中'subject_id'与我传递的subject_id匹配,并对此进行排序并选择1值(这将是最高的)。 所以我现在有1列有1个值。 然后我抓住那个值,把它放在'位置'并用1递增。

但是我得到的错误是: "Column count doesn't match value count at row 1"再次,我是初学者(我习惯了另一种语言),所以这可能是一个小而愚蠢的东西,我忘了/做错了..任何人都可以帮我吗?

mysql_query()返回一个语句句柄,而不是你想要的数据。 你必须先获取一行:

$bla = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_row($bla);
$position = $row[0] + 1;

您可以将查询更改为:

$query = "UPDATE pages SET position=position+1 WHERE subject_id = '$subject_id' ORDER BY position DESC LIMIT 1";

然后简单地跑

mysql_query($query, $connection);

显然,如果你有两个具有相同最高值的subject_id,只有一个会更新 - 但你现在设置脚本的方式无论如何都会这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM