我有几个问题导致动态部分,但我认为这应该有意义
$memberID = 7;
$oreVolumePriceQuery = "SELECT od.oreID, od.oreType, od.name, od.inGameID, od.size, ir.officialCorpRate FROM oreData od JOIN itemRates ir ON od.inGameID = ir.typeID order by od.oreID asc";
$oreVolumePriceResult = mysql_query($oreVolumePriceQuery);
while($row = mysql_fetch_assoc($oreVolumePriceResult)){
$oreType = $row['oreType'];
$getRefiningRateQuery = "SELECT '$oreType' FROM memberData WHERE member_id = '$memberID'";
$getRefiningRateResult = mysql_query($getRefiningRateQuery);
while($row = mysql_fetch_assoc($getRefiningRateResult)){
$refiningRate = $row['$oreType'];
第一个查询返回类似于下面的结果(实际上 31 行,但 2 行就足够了)
oreID | oreType | name | inGameID | size | officialCorpRate
1 | veld | veldspar | 1230 | 0.1 | 10.21
2 | scor | scordite | 1228 | .15 | 10.2
基于第一行,第二个查询最终为
SELECT veld FROM memberData WHERE member_ID = '7'
此查询返回正确的结果
veld
.7
但这一切在最后一行都崩溃了,它动态地选择从查询中提取哪一列。有什么办法可以解决这个问题吗?
最佳答案
您正在定义两个相同的 $row 名称,例如将第二个提取重命名为 $row1
while($row = mysql_fetch_assoc($oreVolumePriceResult)){
$oreType = $row['oreType'];
$getRefiningRateQuery = "SELECT '$oreType' FROM memberData WHERE member_id = '$memberID'";
$getRefiningRateResult = mysql_query($getRefiningRateQuery);
while($row1 = mysql_fetch_assoc($getRefiningRateResult)){
$refiningRate = $row1[$oreType];
关于php - 从mysql动态选择列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14303538/