Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用返回的行作为php变量名,并从CSV分配值_Php_Mysql_Loops_Csv_Multiple Columns - Fatal编程技术网

使用返回的行作为php变量名,并从CSV分配值

使用返回的行作为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

我有一个mysql
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" => "..."
    )
    .
    .
    .
)