Странный вывод PHP - PullRequest
       2

Странный вывод PHP

0 голосов
/ 17 января 2011

Я использую этот код, чтобы попытаться захватить имя таблицы и сохранить его в переменной.

<?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', если я изменяю индекс массивачто я знаю, не имена таблиц в БД и два, что я хочу сделать, это запустить некоторый код для каждой таблицы в БД и вставить имя таблицы в переменную, которую я могу использовать в указанном коде?Как бы я это сделал?

Ответы [ 3 ]

3 голосов
/ 17 января 2011
$tables = mysql_fetch_array($result);

mysql_fetch_array выбирает одну строку, а не весь набор.Это означает, что когда вы делаете $table[0], вы фактически работаете со строковым значением каждого поля в строке.

Вместо этого вы должны поместить mysql_fetch_array в цикл:

while ($table = mysql_fetch_array($result)) {
    $table_name = $table[0];
    echo $table_name;
}
1 голос
/ 17 января 2011

SHOW TABLES возвращает таблицу с одним именем таблицы на строку.Вы должны использовать mysql_fetch_array столько раз, сколько строк в таблице, потому что она извлекает одну строку таблицы ...

Подумайте о чем-то вроде этого:

while($row = mysql_fetch_array($result)) {
    $table_name = $row[0];
    // ...
}
0 голосов
/ 17 января 2011

$ sql = "ПОКАЗАТЬ СТОЛЫ"; $ result = mysql_query ($ sql);

while ($row = mysql_fetch_array($result, MYSQL_BOTH))
{
    $tables[] = $row[0];
}

// To Display
foreach ($tables as $table) {

    $table_name = $table;
    echo $table_name;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...