[英]PHP / MySQL - Create variable with name out of table content?
我正在尝试在PHP中创建一个变量,该变量的名称等于MySQL表中的条目。
我有4张桌子。 在每个表中都有一个名为“发行”的列。 在每一行中,发布中的条目可以不同,但是通常,超过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>";
}
有什么想法如何处理吗?
您可以这样创建一个动态变量 :
${(string)$row->LK_Release} = $data['Numbeer'];
注意两个$
,这意味着该变量将被命名为$row->LK_Release
包含的任何$row->LK_Release
,并且{}
语法带有(string)
因为您需要转换为字符串。
然后,您可以执行以下操作:
echo $releaseAX;
或$releaseBX
, $releaseCX
或所需的任何发行版名称。
您可能想要将这些发行版名称存储为数组中的键,或者当您决定以某个变量命名该发行版时会遇到一些非常奇怪的错误,该变量的名称也用于代码的其他部分。
$releases[$row->LK_release] = $data['Numbeer'];
另外,您可以遍历所有它们,并获得确切的发行版列表及其编号:
foreach( $releases as $name => $amount ) {
echo 'release: ' . $name . ' has ' . $amount . ' as value.';
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.