Как добавить в sql-запрос определенные значения элементов массива?

<?php
//так же у каждого типа в массиве свое уникальное свойство 
$seedEntries = [
    [
    'full_name' => 'John Norton',
    'phone' => '0946565656',
    'email' => '[email protected]',
    'role' => 'student',
    'averange_mark' => 4.5
    ],
    [
    'full_name' => 'Ben Simons',
    'phone' => '0935557687',
    'email' => '[email protected]',
    'role' => 'teacher',
    'subject' => 'English'
    ],
    [
    'full_name' => 'Nike Sun',
    'phone' => '0935985634',
    'email' => '[email protected]',
    'role' => 'administrator',
    'working_day' => 'monday'
    ]
];
?>

<?php if($seedEntries['role'] === 'student') {/* свойство студента */} ?>
<?php if($seedEntries['role'] === 'teacher') {/* свойство учителя */} ?>
<?php if($seedEntries['role'] === 'administrator') {/* свойство администратора */} ?>

<?php
// добавляется только один тип данных, пытался добавит проверку if, но четно. Может неверно
foreach($seedEntries as $data) {
    $sql = "INSERT INTO members SET
            full_name ='". $data['full_name'] ."',
            role ='". $data['role'] ."',
            subject ='". $data['subject'] ."',
            averange_mark ='". $data['averange_mark'] ."',
            working_day ='". $data['working_day'] ."'
    ";
    $db->exec($sql);
}
?>

Ответы (2 шт):

Автор решения: Jug-IT
 <?php
// массив значений имеет роли со своими уникальными свойствами 
$seedEntries = [
    [
    'full_name' => 'John Norton',
    'phone' => '0946565656',
    'email' => '[email protected]',
    'role' => 'student',
    'averange_mark' => 4.5
    ],
    [
    'full_name' => 'Ben Simons',
    'phone' => '0935557687',
    'email' => '[email protected]',
    'role' => 'teacher',
    'subject' => 'English'
    ],
    [
    'full_name' => 'Nike Sun',
    'phone' => '0935985634',
    'email' => '[email protected]',
    'role' => 'administrator',
    'working_day' => 'monday'
    ]
];

// в зависимости от роли, добавляется уникальное свойство
foreach($seedEntries as $data) {
    $averange_mark = NULL;
    $subject = NULL;
    $working_day = NULL;
    
    if($data['role'] == 'student') {
        $averange_mark = $data['averange_mark'];
    } elseif($data['role'] == 'teacher') {
        $subject = $data['subject'];
    } elseif($data['role'] == 'administrator') {
        $working_day = $data['working_day'];
    }
    
    $sql = "INSERT INTO members SET
            full_name ='". $data['full_name'] ."',
            role ='". $data['role'] ."',
            averange_mark = '". $averange_mark ."',
            subject = '". $subject ."',
            working_day = '". $working_day ."'
    ";
    $db->exec($sql);
}
?>
→ Ссылка
Автор решения: Bebe
   <?php
    foreach($seedEntries as $data){
    switch($data['role']){
    case 'student':
        try{
            $sql = "INSERT INTO members SET
            full_name ='". $data['full_name'] ."',
            phone='" . $data['phone'] . "',
            email='" . $data['email'] . "',
            role ='". $data['role'] ."',
            averange_mark= {$data['averange_mark']};";
            $db->exec($sql);
        }catch(Exception $exception){
            die('Error');
        };
    break;
    case 'teacher':
        try{
            $sql = "INSERT INTO members SET
            full_name ='". $data['full_name'] ."',
            phone='" . $data['phone'] . "',
            email='" . $data['email'] . "',
            role ='". $data['role'] ."',
            subject='".$data['subject']."'";
            $db->exec($sql);
        }catch(Exception $exception){
            die('Error');
        };
    break;
    case 'administrator':
        try{
            $sql = "INSERT INTO members SET
            full_name ='". $data['full_name'] ."',
            phone='" . $data['phone'] . "',
            email='" . $data['email'] . "',
            role ='". $data['role'] ."',
            working_day='".$member['working_day']."'";
            $db->exec($sql);
        }catch(Exception $exception){
            die('Error');
        };
        break;
  }
  }
→ Ссылка