我试图在PHP中创建一个名称等于MySQL表中的条目的变量。
我有4张桌子。在每个表中都有一个名为" release"的列。在每一行中,发布中的条目可以不同,但通常在发布中有超过10行具有相同的条目。 我的目标是计算每一个现有"发布的数量"在每个表中,如果更多的表具有相同的版本,我想要总和数量。
例如:
表1有20个版本,名为" releaseAX"和12个版本称为" releaseBX"
表2有14个版本,名为" releaseBX"和10个版本称为" releaseCX"
最后我想要有3个自动生成的变量,名为releaseAX,releaseBX和releaseCX。它们的值应为releaseAX = 20,releaseBX = 26(12 + 14)和releaseCX = 10 (我一开始并不知道发布的所有名称)
我已经设法显示每个表中所有版本的名称以及每个版本的相关条目数量。
要获取我使用的所有现有版本
$releasesSW = mysqli_query($con, 'SELECT DISTINCT LK_Release FROM requirementspecificationsw');
要使用相关数量的条目显示它们,请使用
while($row = mysqli_fetch_object($releasesSW))
{
echo "Releasename: " . "$row->LK_Release". "<br>" . " -- Number of entries: ";
$count = mysqli_query($con, "SELECT COUNT(LK_Release) AS Numbeer FROM
requirementspecificationsw WHERE LK_Release = '$row->LK_Release' ");
$data = mysqli_fetch_assoc($count);
echo $data['Numbeer'];
echo "<br>";
}
有任何想法如何解决这个问题?
答案 0 :(得分:1)
您可以像这样创建dynamic variable:
${(string)$row->LK_Release} = $data['Numbeer'];
注意两个$
,意味着变量将被命名为$row->LK_Release
包含的内容,{}
语法带有(string)
,因为您需要强制转换为字符串。
然后你可以这样做:
echo $releaseAX;
或$releaseBX
,$releaseCX
或您想要的任何版本名称。
答案 1 :(得分:0)
您可能希望将这些版本名称存储为数组中的键,或者当您决定在名称也被使用的变量之后命名一个版本时,您将获得一些非常奇怪的错误在代码的其他部分。
$releases[$row->LK_release] = $data['Numbeer'];
作为一个额外的补充,您可以遍历所有这些并获得最终版本及其编号列表:
foreach( $releases as $name => $amount ) {
echo 'release: ' . $name . ' has ' . $amount . ' as value.';
}