我在堆栈上寻找类似的东西,但没有完全如此。
我(我想)我需要在循环中生成一个唯一的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;
}
}
答案 0 :(得分: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
答案 1 :(得分: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;
}