【问题标题】:How to work in php page with more mysql database connections in real-time如何在具有更多mysql数据库连接的php页面中实时工作
【发布时间】:2019-12-04 20:09:24
【问题描述】:

我有三个具有相同结构(相同表)的 mysql 数据库。然后我有一个查询,它从每个数据库返回不同的结果。

我想要一个php页面,里面会有radiobutton,listbox等(没有提交按钮),在这里我会选择数据库(DB1/DB2/DB3),然后我会根据选择的数据库看到结果(我希望它是实时的,没有提交按钮)。

我有什么:

index.php

 <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    </head>

    <?php
    include_once ('connection_db_1.php');
    ?>

    <body>
        <form action="">
            <select name="database">
                <option value="DB1">DB1</option>
                <option value="DB2">DB2</option>
                <option value="DB3">DB3</option>
            </select>
        </form>


    <?php
    include ('queries.php');
    $test_1 = mysqli_query($mysqli_db, $test);
    echo "
                    <table>
                    <thead>
                        <tr>
                            <th>Column_1</th>
                        </tr>
                    </thead>";

    while ($row = mysqli_fetch_array($test_1)) {
        echo "<form method=\"post\"><tr>";
        echo "<td>" . $row['Column_1'] . "</td>";
        echo "</tr></form>";
    }
    echo "</table><br>";
    mysqli_close($mysqli_db);
    ?>
    </body>
    </html>

查询.php

<?php
$test = "select Column_1 from TEST; ";
?>

connection_db_1.php

<?php
// Connection data
$servername = "servename";
$username = "username";
$password = "pasword";
$dbname = "dbname_1";

// Create connection
$mysqli_db = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($mysqli_db->connect_error) {
    die("Connection failed: " . $mysqli_db->connect_error);
}
?>

connection_db_2.php

<?php
// Connection data
$servername = "servename";
$username = "username";
$password = "pasword";
$dbname = "dbname_2";

// Create connection
$mysqli_db = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($mysqli_db->connect_error) {
    die("Connection failed: " . $mysqli_db->connect_error);
}
?>

我认为,我需要一些 javascript/ajax 解决方案,但我不知道如何有效地使用它。

感谢您的建议。

【问题讨论】:

  • 最简单的方法是在选择数据库后重新加载整个页面。
  • 所以你只是想学习如何做ajax?
  • 我会将您的问题拆分为更小的子问题:1)表单提交 2)根据表单字段选择数据库 3)如果需要/需要,进一步改进,例如 AJAX。

标签: javascript php mysql ajax


【解决方案1】:

现在我看不到您展示任何使用或实现了任何 ajax 处理程序的示例。 我可以建议您使用纯 Javascript 或 jQuery(通过包含一个 javascript 库,see her

在考虑实施 AJAX 之前,您可以做以下事情(它将包括第一次选择和表单提交后的数据库):

<?php
if (isset($_POST["database"])) {
    $db = $_POST["database"];
}
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
</head>

<?php
include_once("connection_db_" . $db . ".php"); /* This will include the selected connection */
?>

<body>
<form action="" method="post">
    <select name="database">
        <option value="1">DB1</option>
        <option value="2">DB2</option>
        <option value="3">DB3</option>
    </select>
</form>


<?php
include('queries.php');
$test_1 = mysqli_query($mysqli_db, $test);
echo "
                    <table>
                    <thead>
                        <tr>
                            <th>Column_1</th>
                        </tr>
                    </thead>";

while ($row = mysqli_fetch_array($test_1)) {
    echo "<form method=\"post\"><tr>";
    echo "<td>" . $row['Column_1'] . "</td>";
    echo "</tr></form>";
}
echo "</table><br>";
mysqli_close($mysqli_db);
?>
</body>
</html>

【讨论】:

  • 嗨,谢谢你的解决方案,我按照你的建议做了,但我不知道如何使用javascript,所以我不必使用提交按钮。谢谢
【解决方案2】:

数据库是否在同一台服务器上?如果是这样,您只需要一个与服务器的连接。您可以通过在查询中添加数据库名称来进行查询:

select Column_1 from dbname_1.TEST

select Column_1 from dbname_2.TEST

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    • 2015-07-14
    • 1970-01-01
    • 2014-11-18
    相关资源
    最近更新 更多