Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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_For Loop - Fatal编程技术网

奇怪的PHP输出

奇怪的PHP输出,php,mysql,for-loop,Php,Mysql,For Loop,我使用这段代码试图获取一个表名并将其存储在一个变量中 <?php connectDB(); $sql = "SHOW TABLES"; $result = mysql_query($sql); $tables = mysql_fetch_array($result); foreach ($tables as $table) { $table_name = $table[0]; echo $table_name; } closeConn();

我使用这段代码试图获取一个表名并将其存储在一个变量中

<?php
connectDB();
$sql = "SHOW TABLES";
$result = mysql_query($sql);
$tables = mysql_fetch_array($result);
    foreach ($tables as $table) {
        $table_name = $table[0];
        echo $table_name;
    }
closeConn();
?>

首先,它输出'aa'和'bb',如果我更改数组索引,我知道它不是数据库中的表名,第二,我想做的是为数据库中的每个表运行一些代码,并将表名插入到一个变量中,我可以在所述代码中使用它?我该怎么做

$tables = mysql_fetch_array($result);
mysql\u fetch\u array
获取一行,而不是整个集合。这意味着当您执行
$table[0]
时,实际上是在处理行中每个字段的字符串值

您应该将
mysql\u fetch\u数组
放在循环中:

while ($table = mysql_fetch_array($result)) {
    $table_name = $table[0];
    echo $table_name;
}
mysql\u fetch\u array
获取一行,而不是整个集合。这意味着当您执行
$table[0]
时,实际上是在处理行中每个字段的字符串值

您应该将
mysql\u fetch\u数组
放在循环中:

while ($table = mysql_fetch_array($result)) {
    $table_name = $table[0];
    echo $table_name;
}

SHOW TABLES
返回每行一个表名的表。您应该使用
mysql\u fetch\u array
的次数与表中的行数相同,因为它只检索表中的一行

想想这样的事情:

while($row = mysql_fetch_array($result)) {
    $table_name = $row[0];
    // ...
}

SHOW TABLES
返回每行一个表名的表。您应该使用
mysql\u fetch\u array
的次数与表中的行数相同,因为它只检索表中的一行

想想这样的事情:

while($row = mysql_fetch_array($result)) {
    $table_name = $row[0];
    // ...
}
$sql=“显示表格”; $result=mysql\u查询($sql)

$sql=“显示表格”; $result=mysql\u查询($sql)


我建议
echo“$table\u name\n”谢谢,我知道了!你知道为什么这只会打印出三个表中的两个,从第二个表开始,忽略第一个表吗?@statsm我想这不是
$table\u name
的最终目的,但是是的,这可能是个好建议。@benhowdle89我的代码?不,不知道。如果您在MySQL控制台/phpMyAdmin中执行查询,会发生什么情况?@benhowdle89确保您已删除对
MySQL\u fetch\u array
的上一次调用。我建议
echo“$table\u name\n”谢谢,我知道了!你知道为什么这只会打印出三个表中的两个,从第二个表开始,忽略第一个表吗?@statsm我想这不是
$table\u name
的最终目的,但是是的,这可能是个好建议。@benhowdle89我的代码?不,不知道。如果您在MySQL控制台/phpMyAdmin中执行查询,会发生什么情况?@benhowdle89请确保您已删除对
MySQL\u fetch\u array
的上一次调用。