【问题标题】:Use php to find specific values in results of mysql query使用php查找mysql查询结果中的特定值
【发布时间】:2021-04-24 06:39:21
【问题描述】:

我有一个如下所示的 sql 查询:

//do a query to find all the samples in the currently selected rack 
$sql = "SELECT SampleID, ColumnNumber, RowNumber FROM Samples WHERE Rack = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $rack);
$stmt->execute();
$rackContents = $stmt->get_result();

在每个机架中,ColumnNumber 和 RowNumber 组合描述了机架中的一个位置,开头为:
列号 = 1,行号 = 1 然后
列号 = 2,行号 = 1
依此类推,直到(例如,在 10x10 机架中)
列号 = 10,行号 = 10。

我想在表格中的机架的每个位置显示 SampleID。使用嵌套循环,我可以为每个机架位置绘制一个具有<td> 的表。我想不通的是如何根据每个位置的 ColumnNumber 和 RowNumber 组合显示 SampleID。
这就是我构建表格的方式:

//start a loop that visits each row
    $rownumber = 1; 
    
    while ($rownumber <= $numberofrows){
        //start a loop that visits each column
        //start a row
        echo "<tr>";
        $columnnumber = 0; 
        while ($columnnumber <= $numberofcolumns){
            
            if ($columnnumber == 0){
            echo "<td>" . $rownumber . "</td>";
            }
            else{
                
                //find the sample number for the relevant column and row
                //inside the array we got in an sql query earlier, $rackContents
                    echo "<td>" . x . "</td>";
                //What do I put in place of the x to output the appropriate 
                //SampleId for the ColumnNumber/RowNumber combo?
            }

        $columnnumber++;
        }//end the columnnumber loop
    
    //end the row
    echo "</tr>";
    $rownumber++;    
    }//end the rownumber loop

我一直在查看 array_search,但我无法找到任何地方。

【问题讨论】:

  • 您可以添加记录集的样本吗? sampleID 值是否连续且没有间隙?

标签: php mysql arrays


【解决方案1】:

如果我对您的理解正确,我认为您只需要从结果中获取数组即可。虽然我不确定这是你真正想要的结果。

while ($rackContent = $rackContents->fetch_array(MYSQLI_NUM))
    $rownumber = 1;
    while ($rownumber <= $numberofrows){
        echo "<tr>";
        $columnnumber = 0; 
        while ($columnnumber <= 3){
            
            if ($columnnumber == 0){
                echo "<td>" . $rownumber . "</td>";
            } else {
                echo "<td>" . $rackContent['SampleID'] . "</td>";
            }

        $columnnumber++;
    
    echo "</tr>";
    $rownumber++;    
    }
}

但我想你可能想要更多这样的东西。

while ($rackContent = $rackContents->fetch_array(MYSQLI_NUM))
        echo "<tr>";
        echo "<td>" . $rownumber . "</td>";
        echo "<td>" . $rackContent['SampleID'] . "</td>";
        echo "<td>" . $rackContent['ColumnNumber'] . "</td>";
        echo "<td>" . $rackContent['RowNumber'] . "</td>";
        echo "</tr>"; 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 2013-10-05
    • 2023-04-09
    • 2011-06-01
    • 2012-07-30
    • 2011-03-13
    • 2011-07-13
    相关资源
    最近更新 更多