Как я использую foreach для построения 2 разных столбцов в php, pdo - PullRequest
0 голосов
/ 13 июня 2018

Я просто копирую и вставляю, а затем изменяю код, он прекрасно работает для создания выбора.

$sql_company_list = "SELECT Company FROM company_view";

$data = $db->build_select($sql_company_list);

public function build_select($sql){

    $data = $this->db->prepare($sql);
    $data->execute();
    $data->setFetchMode(PDO::FETCH_ASSOC);

    $option = "";
    $count = 1;

    foreach($data as $row){

        foreach ($row as $name=>$value){
            $option .= "<option value=".$count;         
            $option .= ">";
            $option .= "".$value."";
            $option .= "</option>";
        }   
    $count++;
    }           
    return $option;
}   

Но, когда я хочу выбрать идентификатор и компанию в качестве значения параметра (id) и параметраимя (компания), это не работает.Как внести минимальные изменения, чтобы сделать это?Большое спасибо.

$sql_company_list = "SELECT id, Company FROM company_view";

$data = $db->build_select_1($sql_company_list);

public function build_select_1($sql){

    $data = $this->db->prepare($sql);
    $data->execute();
    $data->setFetchMode(PDO::FETCH_ASSOC); // i don't exactly understand... 

    $option = "";
    //$count = 1;

    foreach($data as $row){

        foreach ($row){ // this don't work
            $option .= "<option value=".$row[0]; 
            // i wish to do this e.g. value assigns to ID           
            $option .= ">";
            $option .= "".$row[1]."";
            // i wish to do this e.g. option name assigns to company    
            $option .= "</option>";
        }   
    //$count++;
    }           
    return $option;
}   

1 Ответ

0 голосов
/ 13 июня 2018

Согласно вашему рабочему коду,

    foreach ($row as $name=>$value){
        $option .= "<option value=".$count;         
        $option .= ">";
        $option .= "".$value."";
        $option .= "</option>";
    }

Это работает правильно для вас.Таким образом, для установки названия и значения компании в раскрывающихся меню вы можете изменить свой код, как показано ниже.

Вместо $row[0] и $row[1] используйте его следующим образом:

    foreach ($row as $name=>$value){
        $option .= "<option value=".$value;         
        $option .= ">";
        $option .= "".$name."";
        $option .= "</option>";
    }   

Попробуйте и посмотрите, работает ли он для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...