Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在列名查询中使用数组_Php_Mysql_Loops - Fatal编程技术网

Php 在列名查询中使用数组

Php 在列名查询中使用数组,php,mysql,loops,Php,Mysql,Loops,我想查询一个表的列名,放入一个数组,然后将该数据用于html的表中, 嗯,就是这样 <?php $ser='localhost'; $usr='root'; $pas='password'; $bsd='basedata'; $tab='contact'; try { $dbh = new PDO('mysql:host='.$ser.';dbname='.$bsd.'', $usr, $pas); $dbh->setAttribute(PDO::ATTR_ERRM

我想查询一个表的列名,放入一个数组,然后将该数据用于html的表中, 嗯,就是这样

<?php
$ser='localhost';
$usr='root';
$pas='password';
$bsd='basedata';
$tab='contact';

try
{
    $dbh = new PDO('mysql:host='.$ser.';dbname='.$bsd.'', $usr, $pas);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $query = $dbh->prepare("SHOW FIELDS FROM $tab ");
    $query->execute();
    echo "<tr>";
    $i=0;

    while ($dat = $query->fetch()) {
        $nombre_columna[$i]=$dat[0];
        echo "<th>".$nombre_columna[$i]."</th>";
        $i++;
    }
    echo "</tr>\n";
    $dbh = new PDO('mysql:host='.$ser.';dbname='.$bsd.'', $usr, $pas);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $query = $dbh->prepare("SELECT * FROM $tab");
    $query->execute();
    $j=$i;
    $i=0;
    while ($dat = $query->fetch()) {
        echo "<tr>";
        while ($i<$j) {
            echo "<td>".$dat[$nombre_columna[$i]]."</td>";
            $i++;
        }
        echo "</tr>\n";
    }
    $dbh=null;
    ?>      


因此,当我运行代码时,它只显示查询的第一行,而不显示更多的内容,我认为您误解了输出。它在表中的每一行中循环,但您的问题是,
while($ifetch()){

$i=0;//我正试图编辑您的帖子,以便在其中加入缩进,而不是那样的大块,但您的
try
块没有结束标记。很抱歉,这是我的第一次,我不知道如何正确发布
SELECT COUNT(*)的结果是什么从$tab
?您可以在选择的末尾使用
限制1
,也可以在
循环中使用
。@Mike好像我误解了这个问题,虽然一开始并不清楚…真的@Mike Mike您做到了!!非常感谢它解决了我的问题。@Zrax如果这个答案对您有帮助,请单击复选框接受它。
while ($dat = $query->fetch()) {
    $i=0; // <-- This will fix it
    echo "<tr>";
    while ($i<$j) {
        echo "<td>".$dat[$nombre_columna[$i]]."</td>";
        $i++;
    }
    echo "</tr>\n";
}
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>