如何在PHP中动态创建MySql表内容

时间:2013-10-18 13:06:44

标签: php mysql sql

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

我动态创建MySQL表并列出它们,问题是我想在页面上显示每个表的组合     包括( “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);

提前致谢

2 个答案:

答案 0 :(得分:0)

首先,mysql_已弃用,因此您可能希望切换为mysqli

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

$con = mysqli_connect('localhost', $username, $password, 'mydb');
$sql = "SHOW TABLES FROM pendejas";
$result = mysqli_query($con, $sql);

答案 1 :(得分: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以显示列标题)