0

我真的是 PHP 和 MySql 的新手,我已经为我的问题搜索了一些解决方案,但我找不到任何东西,我第一次来这里问你。

我动态创建MySQL表并列出它们,问题是我想在页面上显示每个表的cointain include("config.php");

$sql = "SHOW TABLES FROM pendejas";
$result = mysql_query($sql);

if (!$result) {
echo "DB Error, could not list tables\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}

while ($row = mysql_fetch_row($result)) {
if ( //     exclude some table to show 
        ($row[0] <> 'pasajeros') &&
    ($row[0] <> 'usuarios') &&
    ($row[0] <> 'grupos')
       )

echo " $row[0]". "<br>"; // list tables 
// This code displays table list but 
// I need to show contain of each table listed on this page but how :( 
}
mysql_free_result($result);

提前致谢

4

2 回答 2

0

首先,mysql_折旧了,所以你可能想切换到mysqli

其次,当你使用过程方法时,你必须用mysqli_connect创建一个连接指针,然后在你的代码中传递它

$con = mysqli_connect('localhost', $username, $password, 'mydb');
$sql = "SHOW TABLES FROM pendejas";
$result = mysqli_query($con, $sql);
于 2013-10-18T13:12:01.670 回答
0

编辑:正如 Machavity 所说,不推荐使用 mysql_ ,所以我添加了 mysqli 版本:)

要显示每个表名及其内容,您可以替换

echo " $row[0]". "<br>";

通过以下代码:

Mysqli_* 版本:

$my = new Mysqli('localhost', 'user', 'pass', 'mydb');
$sql = 'SELECT * from '.$row[0];
$res_content = $my->query($sql);
if ($res_content)
{

    echo '<table><caption> datas of '.$row[0].'</caption>';
    while($row_content = $res_content->fetch_assoc())
    {
        echo '<tr>';
        foreach($row_content as $field => $value)
        {
            echo '<td>'.$value.'</td>';
        }
        echo '</tr>';
    }
    echo '</table>';

已弃用的版本:

$sql = 'SELECT * from '.$row[0];
$res_content = mysql_query($sql);
if ($res_content)
{

    echo '<table><caption> datas of '.$row[0].'</caption>';
    while($row_content = mysql_fetch_assoc($res_content))
    {
        echo '<tr>';
        foreach($row_content as $field => $value)
        {
            echo '<td>'.$value.'</td>';
        }
        echo '</tr>';
    }
    echo '</table>';

这是基本代码,但也许您必须根据需要对其进行调整(例如添加查询SHOW FIELDS以显示列标题)

于 2013-10-18T13:33:15.007 回答