查询中的SQL查询(PHP)

查询中的SQL查询(PHP),php,mysql,sql,tsql,Php,Mysql,Sql,Tsql,因此,我在下面介绍了一些php,旨在查找spikes表的列,并根据spikes查询的结果相应地构建一个html表 当然,我不想为每个循环运行查询,所以我定义了$schema来在循环之前查询它。但是,如果我不在while($spike…)部分中声明它,它就是不起作用。我做错了什么 请不要给我一个专有的答复。我正在努力坚持编写sql解决方案之间尽可能交叉兼容的代码 // Queries $q_spikes = "SELECT * FROM spikes"; $q_schema = "SELECT *

因此,我在下面介绍了一些php,旨在查找spikes表的列,并根据spikes查询的结果相应地构建一个html表

当然,我不想为每个循环运行查询,所以我定义了$schema来在循环之前查询它。但是,如果我不在while($spike…)部分中声明它,它就是不起作用。我做错了什么

请不要给我一个专有的答复。我正在努力坚持编写sql解决方案之间尽可能交叉兼容的代码

// Queries
$q_spikes = "SELECT * FROM spikes";
$q_schema = "SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = N'spikes'";


// Table
echo "<table>";

    echo "<tr>";
    $schema = $conn->query($q_schema);

    while($info = $schema->fetch_assoc()) {
        echo "<td>" . $info['COLUMN_NAME'] . "</td>";
    }
    echo "</tr>";

    $spikes = $conn->query($q_spikes);

    while($spike = $spikes->fetch_assoc()) {

        echo "<tr>";

        $schema = $conn->query($q_schema);

        while($info = $schema->fetch_assoc()) {
            echo "<td>" . $spike[$info['COLUMN_NAME']] . "</td>";
        }
        echo "</tr>";

    }

echo "</table>";
//查询
$q_spikes=“从spikes中选择*”;
$q_schema=“从信息_schema.COLUMNS中选择*,其中TABLE_NAME=N'spikes';
//桌子
回声“;
回声“;
$schema=$conn->query($q_schema);
而($info=$schema->fetch_assoc()){
回显“$info['COLUMN_NAME']”;
}
回声“;
$spikes=$conn->query($q_spikes);
而($spike=$spikes->fetch_assoc()){
回声“;
$schema=$conn->query($q_schema);
而($info=$schema->fetch_assoc()){
回显“$spike[$info['COLUMN_NAME']]”;
}
回声“;
}
回声“;

根据RiggsFolly的评论,我能够通过以下方式实现我的目标:

    // Queries
    $q_spikes = "SELECT * FROM spikes";
    $needshead = true;

    // Table
    echo "<table>";
        $spikes = $conn->query($q_spikes);
        while($spike = $spikes->fetch_assoc()) {
            if($needshead) { 
                $needshead = false;
                echo '<tr>';
                    foreach ($spike as $key => $value) {
                    echo '<td>' . $key . '</td>';   
                    }
                echo '<tr>';
            }
            echo "<tr>";
                foreach ($spike as $key => $value) {
                    echo "<td>" . $value . '</td>'; 
                }
            echo "</tr>";
        }
    echo "</table>";
//查询
$q_spikes=“从spikes中选择*”;
$needshead=true;
//桌子
回声“;
$spikes=$conn->query($q_spikes);
而($spike=$spikes->fetch_assoc()){
如果($needshead){
$needshead=false;
回声';
foreach($key=>$value时的峰值){
回显“.$key.”;
}
回声';
}
回声“;
foreach($key=>$value时的峰值){
回显“$value.”;
}
回声“;
}
回声“;

我认为在实际查询的第一行上使用一个简单的
数组键($spike)
就可以轻松地完成这项工作,除非您需要准备一个包含
$spikes结果值的语句,否则根本不需要在循环中执行查询,您可以在每次迭代之前查询它并使用该值。去掉所有内容
$q_schema
,只需迭代
$spike
。另外,字符串前面的
N
是什么?