[英]How can use a loop variable in function as a parameter of same function in php
[英]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.