我已经编写了一个脚本,该脚本可以根据用户在MySQL数据库中保存的数据,以矩阵形式创建一个表。在该示例中,样品信息将以行指示,而每个样品的各种分析将以列进行。
下面的示例成功创建了列,但是完全省略了行。任何人都可以为为什么不创建行提供一种解释,也许是一种解决方案?没有错误,行没有显示。
if (isset($_GET['display_full_results'])) {
require 'dbh.php';
$order_id = $_GET['display_full_results'];
$sql = "SELECT * FROM samples_database WHERE order_id=$order_id AND micro_analysis!='';";
$result = mysqli_query($conn, $sql);
$micro_analysis = '';
while($input = mysqli_fetch_array($result)) {
$micro_analysis .= $input['micro_analysis'] . ',';
}
$micro_analysis_arr = array_filter(array_unique(explode(',', $micro_analysis)));
$output = '';
if (mysqli_num_rows($result) > 0) {
$output .= '
<thead>
<tr>';
foreach ($micro_analysis_arr as $row1) {
$query = "SELECT * FROM microbiology_analysis_database WHERE id=$row1";
$result3 = mysqli_query($conn, $query);
$input2 = mysqli_fetch_array($result3);
$output .= '
<th colspan="1"><th>
<th>'.$input2['m_analysis'].'</th>';
}
$output .= '</tr>
</thead>
<tbody>';
while ($row = mysqli_fetch_assoc($result)) {
$output .= '
<tr>
<td>'.$row['env_sam_id'].'</td>
<td><input>Empty</td>
<td><input>Empty</td>
</tr>';
}
$output .= '</tbody>';
}
echo $output;
}
答案 0 :(得分:0)
您是否检查过其中是否确实有数据?使用print_r($result)
,因为它可能是您的查询。如果显示为空数组,则应使用print($sql)
进行查询,然后将其粘贴到phpmyadmin上以检查查询是否正确。