【问题标题】:How to marge two arrays data and save one SQL table如何合并两个数组数据并保存一个SQL表
【发布时间】:2019-01-20 21:42:56
【问题描述】:

我有两个数组。我想使用 php 合并并插入到数据库中。这里我放了一些数组数据。但我的阵列非常大。

数组1

Array
(
    [1] => Array
        (
            [ALT_ID] => 2003211
            [STUDENT_ID] => 2235
            [CUSTOM_30] => JAN
            [TITLE] => Level 4
        )

    [2] => Array
        (
            [ALT_ID] => 2003458
            [STUDENT_ID] => 2495
            [CUSTOM_30] => JAN
            [TITLE] => Level 4
        )

    [3] => Array
        (
            [ALT_ID] => 2003211
            [STUDENT_ID] => 2235
            [CUSTOM_30] => JAN
            [TITLE] => Level 4
        )

    [4] => Array
        (
            [ALT_ID] => 2003587
            [STUDENT_ID] => 2624
            [CUSTOM_30] => JAN
            [TITLE] => Level 4
        )

    [5] => Array
        (
            [ALT_ID] => 2003614
            [STUDENT_ID] => 2651
            [CUSTOM_30] => JAN
            [TITLE] => Level 4
        )

    [6] => Array
        (
            [ALT_ID] => 2003682
            [STUDENT_ID] => 2721
            [CUSTOM_30] => JAN
            [TITLE] => Level 4
        )

    [7] => Array
        (
            [ALT_ID] => 2003685
            [STUDENT_ID] => 2724
            [CUSTOM_30] => JAN
            [TITLE] => Level 4
        )

    [8] => Array
        (
            [ALT_ID] => 2003777
            [STUDENT_ID] => 2814
            [CUSTOM_30] => JAN
            [TITLE] => Level 4
        )
)

数组2

Array
(
    [1] => Array
        (
            [COURSE_ID] => 1
            [TITLE] => Programming Methodology      
            [SHORT_NAME] => ECSI402 
            [MODULE_STATUS] => Core
        )

    [2] => Array
        (
            [COURSE_ID] => 2
            [TITLE] => Communication and Learning Skills in Computer Science  (SE) 
            [SHORT_NAME] => ECSI400         
            [MODULE_STATUS] => Core
        )

    [3] => Array
        (
            [COURSE_ID] => 3
            [TITLE] => Computer Systems Fundamentals    
            [SHORT_NAME] => ECSI404   
            [MODULE_STATUS] => Core
        )

    [4] => Array
        (
            [COURSE_ID] => 4
            [TITLE] => Information and Data Modeling  (SE) 
            [SHORT_NAME] => EBSI401        
            [MODULE_STATUS] => Core
        )

    [5] => Array
        (
            [COURSE_ID] => 5
            [TITLE] => Software Development Principles          
            [SHORT_NAME] => ECSI406  
            [MODULE_STATUS] => Core
        )
)

我希望将这两个数据提交到一个表中。这是针对它的 SQL 查询。

INSERT INTO MODULE_REG (STUDENT_ID, COURSE_ID, DATE_REGISTERED, REGISTERED, ACADEMIC_SESSION)

我想这样保存我的数据库表。这是样本一。我必须像这样提交这两个数组的所有数据。

 +-----------+----------+-----------+----------------+-------------+
|student id | course id| registered| data_registered| academic ses|
+-----------+----------+-----------+----------------+-------------+
|  2235     |    1     |     Y     |  2017.11.16    |  Level 4    |
|  2235     |    2     |     Y     |  2017.11.16    |  Level 4    |
|  2235     |    3     |     Y     |  2017.11.16    |  Level 4    |
|  2495     |    1     |     Y     |  2017.11.16    |  Level 4    |
|  2495     |    2     |     Y     |  2017.11.16    |  Level 4    |
|  2495     |    3     |     Y     |  2017.11.16    |  Level 4    |
+-----------+----------+-----------+----------------+-------------+

【问题讨论】:

  • 一般的想法是设置一个参数化查询,遍历数组并使用唯一数据执行查询。
  • 数组 2 和数组 1 的关联是什么?你怎么知道哪个学生属于哪个课程
  • @RedBottle,请您检查一下该表。我想这样保存数据。
  • 我希望所有学生保存到所有课程

标签: php mysql arrays


【解决方案1】:

你可以试试这样的

for($i=0;$i<count($array1);$i++){

$student_id[$i]=$array1[$i]['STUDENT_ID'];
$accademic_ses[$i]=$array1[$i]['ACADEMIC_SESSION'];
for($j=0;$j<count($array2);$j++){

$sql= "INSERT INTO MODULE_REG (STUDENT_ID, COURSE_ID, DATE_REGISTERED, REGISTERED, ACADEMIC_SESSION) VALUES (".$student_id[$i].",".$course_id[$j].",/*add your registered and data_registered here/*,".$accademic_ses[$i].")";

/*execute your sql here*/
}
}

我看不到已注册和 data_registered 的任何值,所以我没有添加。您可以相应地添加。

【讨论】:

  • 我添加了这段代码但没有工作。请你帮帮我。
  • 你可以用你对我的回答所做的更改来编辑你的问题吗?如果没有看到您的代码和错误,很难提供帮助。
  • if(isset($_POST['submit'])) { for($i=0;$i&lt;count($result);$i++){ $student_id[$i]=$result[$i]['STUDENT_ID']; $acyear_id[$i]=$result[$i]['ACADEMIC_SESSION']; for($j=0;$j&lt;count($result1);$j++){ $date = date("Y-m-d"); $sql= "INSERT INTO MODULE_REGISTRATION (STUDENT_ID, COURSE_ID,REGISTERED, DATE_REGISTERED, ACADEMIC_SESSION) " "VALUES (".$student_id[$i].",".$course_id[$j].",".'Y'.",".$date. ",".$acyear_id[$i].")"; DBQuery($sql); $result = mysql_query($sql); } } }
  • 我是这样写的。
  • 感谢您的回答我找到了答案。它与您的相似。
【解决方案2】:

这就是答案。 $resultarray1.. $result1array2

     foreach ($result as $value){

    $value[STUDENT_ID];
    $value[TITLE];
   foreach($result1 as $values){
    $values[COURSE_ID];

    $date = date("Y-m-d");

    $sql= "INSERT INTO MODULE_REGISTRATION (STUDENT_ID, COURSE_ID,REGISTERED, DATE_REGISTERED, ACADEMIC_SESSION) "
    . "VALUES ('".$value[STUDENT_ID]."','".$values[COURSE_ID]."', 'Y' ,'".$date. "','".$value[TITLE]."')";
    DBQuery($sql);

    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 2021-12-19
    • 1970-01-01
    相关资源
    最近更新 更多