使用返回的行作为php变量名,并从CSV分配值
我有一个mysql使用返回的行作为php变量名,并从CSV分配值,php,mysql,loops,csv,multiple-columns,Php,Mysql,Loops,Csv,Multiple Columns,我有一个mysqlSELECT查询,返回以下内容: $getDbVars = "SELECT `var_code` FROM `campaign_variables`"; $name $videoURL $leadLogo $brand $competitor 我还有一个CSV,其列与上面相同。当然,CSV为每列保存数百行 andres,http://somewhere.com/vid1.mp4,http://somewhere.com/logo1.png,brand1,andres-com
SELECT
查询,返回以下内容:
$getDbVars = "SELECT `var_code` FROM `campaign_variables`";
$name
$videoURL
$leadLogo
$brand
$competitor
我还有一个CSV,其列与上面相同。当然,CSV为每列保存数百行
andres,http://somewhere.com/vid1.mp4,http://somewhere.com/logo1.png,brand1,andres-competitor
allan,http://somewhere.com/vid5.mp4,http://somewhere.com/logo5.png,brand5,allan-competitor
alexander,http://somewhere.com/vid7.mp4,http://somewhere.com/logo7.png,alexander-competitor
首先,我需要使用sql查询返回的任何变量名
然后,我需要能够循环通过CSV,并且每次都将值分配到这些变量中。例如,在循环的第一次扫描中:
$name = 'andres';
$videoURL = 'http://somewhere.com/vid1.mp4';
$leadLogo = 'http://somewhere.com/logo1.png';
$brand = 'brand1';
$competitor = 'andres-competitor';
依此类推,对于CSV的每一行
请让我知道,如果上述是没有多大意义。我必须这样做的原因是,在某些情况下,同一个查询将返回不同数量的行。因此,将有不同的“变量名”。好消息是CSV的列数始终与查询返回的行数相同。我认为实现这一点的最佳方法是数组:
$keys = array("name", "videoURL", "leadLogo", "brand", "competitor");
$csv = $your_csv_as_array_data;
$data = array();
foreach($csv as $row) {
$temp = array();
for($i = 0; $i < count($keys); $i++) {
$temp[$keys[$i]] = $row[$i];
}
$data[] = $temp;
}
请详细说明。显示一些示例csv行和select查询以及结果应该是什么样子。
list($name,$videoURL,…)=mysql\u fetch\u assoc($result)
。您需要的是基本的PHP和数据库操作。你可能只是想得太多了。@TobiasKun谢谢,我补充了更多细节@MarcB希望我能,但我想我做不到。对于其他使用它的人,同样的查询将返回非常不同的数据,并且会给我不同数量的变量,因为他们将使用不同的CSV。
array (
[0] => array(
"name" => "...",
"videoURL" => "...",
"leadLogo" => "...",
"brand" => "...",
"competitor" => "..."
),
[1] => array(
"name" => "...",
"videoURL" => "...",
"leadLogo" => "...",
"brand" => "...",
"competitor" => "..."
),
[2] => array(
"name" => "...",
"videoURL" => "...",
"leadLogo" => "...",
"brand" => "...",
"competitor" => "..."
)
.
.
.
)