簡體   English   中英

如何在循環中使用相同的變量

[英]How to use the same variable in a loop

我已經建立了一個MySql數據庫,其中包含幾個表(需要上傳在excel中輸入的大量數據)。 我想將每個表名用作變量,每次將新表添加到數據庫時該變量都會自動更新。 但是,我不知道如何防止PHP在循環中覆蓋$ tableName變量。 這是我到目前為止所得到的:

        <?php

            if (!mysql_connect($host, $username, $password)) {
                echo 'Could not connect to mysql';
                exit;
            }

            $sql = "SHOW TABLES FROM $database";
            $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)) {
                $tableName = $row[0];
                include('../design.php');
            }


        ?>

換句話說:在網站的首頁上,我想包含每個數據庫表中的數據。 我已經組織了一個框架,用於提取該數據並將其整齊地呈現在design.php中。 但是,此文件使用$ tableName變量提取數據,並且我認為該變量在每個循環中都被覆蓋,從而導致錯誤(僅顯示一張表)。

相反,如果我只是將代碼分隔在自己的php對象中,那么一切都很好:

        <?php
            $tableName = tablename1;
            include('../design.php');
        ?>
        <?php
            $tableName = tablename2;
            include('../design.php');
        ?>
        etc..

誰能向我解釋這是如何工作的? 還是有更聰明的做事方式?

提前致謝!

在腳本的開頭include design.php文件。 在此文件中,定義一個函數。

function doSomethingWithTableName ($table)
{
    // do something with it
}

然后,在您的前端文件中,您將執行以下操作:

$sql = "...";
$result = mysql_query ($sql);
while ($row = mysql_fetch_row($result))
{
    $processed_data = doSomethingWithTableName ($row[0]);
    // do something with $processed_data
}

希望這可以幫助。

我不知道design.php里面有什么,但是我沒有創建它,而是創建了一個函數,就像:

function designFunction($tableName){
//put the design.php here
return $something;
}

現在在循環中使用designFunction

while ($row = mysql_fetch_row($result)) {
  $tableName = $row[0];
  $someResult = designFunction($tableName);
  //etc...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM