0

我在堆栈上寻找过类似的东西,但没有完全一样的东西。

我(想我)需要在循环中生成一个唯一的 MySQL 查询,因为每次迭代都需要查找不同的表。循环来自一个爆炸的 $_GET 数组。

问题是基于循环迭代创建一个不同命名的 mysql 查询。我已经在 $var 名称不同但它不起作用的地方完成了它,我认为是因为它是一个字符串而不是一个变量?

任何帮助表示赞赏

$temps = explode(",", $_GET['temps']);
$tempCount = count($temps); 

for ($i=0; $i<$tempCount; $i++)
{
/*'normal' database lookup
$check = mysql_query("SELECT * FROM _db_".$temps[$i]."");       
    $checks = array();
    while ($row = mysql_fetch_assoc($check)) {
    $checks[] = $row;
    }*/


//here's where I'm trying to build a 'dynamic' lookup for each loop iteration

$checkTemp=$check.$temps[$i];
$checkTempArray=$check.$temps[$i].'Array';

$checkTemp = mysql_query("SELECT * FROM _db_".$temps[$i]."");       
    $checkTempArray = array();
    while ($row = mysql_fetch_assoc($checkTemp)) {
    $checkTempArray[] = $row;
    }
}
4

2 回答 2

1

如果我理解正确,您正在尝试SELECT *,$_GET["temps"]

$temps = explode(",", $_GET['temps']);
$tempCount = count($temps); 

$allResults = array();
for ($i=0; $i<$tempCount; $i++)
{
    $checkTemp = mysql_query("SELECT * FROM _db_".mysql_real_escape_string($temps[$i]));
    $allResults[$temps[$i]] = array();
    while ($row = mysql_fetch_assoc($checkTemp))
    {
        $allResults[$temps[$i]][] = $row;
    }
}
// Now for example $allResults["john"][3] contains the fourth row in the table _db_john
print_r($allResults["sally"][2]); // print the third row in _db_sally
于 2013-07-10T11:06:25.120 回答
0

似乎您的代码中有错字

$checkTemp = mysql_query("SELECT * FROM db".$temp[$i].""); 

要么使用

$temps[$i] or just  $temp 
$temp[$i] doesn't makes any sense

所以你的查询应该是

$checkTemp = mysql_query("SELECT * FROM db".$temps[$i]."");  

编辑:对于您的阵列部分,您可以使用

 $$temp = array();
 while ($row = mysql_fetch_assoc($checkTemp)) {
    $$temp[] = $row;
 }
于 2013-07-10T11:24:12.007 回答