【发布时间】:2015-06-03 21:11:21
【问题描述】:
我需要从具有“longtext”数据类型的表列中选择一些值,其中另一列具有特定值并将这些值相加。我需要将总和存储为一个变量,我将 a.) 在网页上回显,b.) 在页面稍后的计算中使用该值。
这可以找到我需要添加的所有值:
$query = "SELECT meta_value
FROM wp_postmeta
WHERE meta_key = '_crowdfundingtotalprice'
ORDER BY CAST(`meta_value` AS UNSIGNED) DESC";
我可以显示结果:
$result = mysql_query($query) or die(mysql_error());
while($row=mysql_fetch_array($result)){
echo $row['meta_value']. "<br>";
}
从我的搜索中,我认为我的查询很接近,但是当我尝试回显结果时我的页面无法加载。以下是行不通的:
$query = "SELECT CAST(SUM('meta_value') as UNSIGNED)
FROM wp_postmeta
WHERE meta_key = '_crowdfundingtotalprice'";
$result = mysql_query($query) or die(mysql_error());
while($row=mysql_fetch_array($result)){
echo $row[SUM('meta_value')]. "<br>";
}
您可能已经猜到,这是一个 Wordpress 数据库表,我无法更改数据类型。一如既往,感谢您的帮助!
编辑 - 尝试下面 Gordon Linoff 的建议,我删除了 meta_value 周围的单引号。还是不行,不过还是谢谢你的建议:
$query = "SELECT CAST(SUM(meta_value) as UNSIGNED)
FROM wp_postmeta
WHERE meta_key = '_crowdfundingtotalprice'";
$result = mysql_query($query) or die(mysql_error());
while($row=mysql_fetch_array($result)){
echo $row[SUM(meta_value)]. "<br>";
}
【问题讨论】:
-
please, please 停止在每个手册页上使用 deprecated
mysql扩展 read the red warning box:扩展将在未来被删除,如果运行 PHP 5.5 及更高版本,则会发出E_DEPRECATED通知。学会使用PDO或mysqli_*代替(i代表改进,顺便说一句),并学会喜欢准备好的陈述 -
@Elias Van Ootegem 理解,但出于测试目的,我使用的是肮脏和肮脏的。非常感谢您对解决问题的有用意见。
-
meta_value周围有单引号。你根本不需要任何引号。我投票关闭这些作为印刷错误。 -
@GordonLinoff 谢谢你的建议。请参阅我上面的编辑。我删除了单引号,但这仍然不起作用。您能再提一个建议吗?
标签: php mysql casting sum longtext