【问题标题】:Inserting a multi-dimensional php array into a mysqli database将多维php数组插入mysqli数据库
【发布时间】:2017-05-18 11:38:16
【问题描述】:

这里的代码不起作用

$sub1="Mathematics";
$sub2="Chemistry";
$sub3="Biology";
$sub4="Hindi";
$sub5="History";
$sub6="Malayalam";
$sub7="Physics";

$timetable = array
  (
  array("Monday","Tuesday","Wednesday","ThursdaY","Friday"),
  array($sub1,$sub1,$sub1,$sub1,$sub1),
  array($sub3,$sub2,$sub6,"Arts",$sub5),
  array($sub2,"Ethics","science",$sub3,"science"),
  array($sub4,$sub3,$sub5,$sub7,$sub3),
  array("Arts",$sub6,$sub5,$sub2,$sub7),
  array($sub6,$sub2,$sub4,$sub6,$sub5),
  array($sub5,$sub4,$sub3,$sub4,$sub6)
);
 for($i=$q;$i<=7+$q;$i++)
    {
     $query = "INSERT INTO `class`(`class`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`) VALUES ('$class','$array[$i][0]', '$array[$i][1]', '$array[$i][2]', '$array[$i][3]', '$array[$i][4]', '1')";

           $que=mysqli_query($obj->conn,$query);  
}

我想将它插入到一个 mysqli 表中,其中主题数组的周(sub1、sub2、sub3、sub4、sub5)是列标题,每个后续数组都是表中的一行。

任何人都可以建议最好的方法来做到这一点,因为我撞到了墙上,这让我头疼!

【问题讨论】:

  • $array 未定义。
  • 但不是那个问题。谢谢楼主
  • 您确定它是 '$class' 而不是 $class 您要插入的值吗??
  • 对不起,我错过了代码 $class 有价值但代码不起作用
  • 另一点是,如果您的循环要重复 7 次,为什么要让它如此复杂,并且对于每个操作,在检查 ;$i

标签: php mysql arrays mysqli


【解决方案1】:
$i = 1;    
for($timetable as $tt) {

    if( $i != 1 ) {

        $query = "INSERT into class (`class`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`) VALUES (`$class`, `$tt[0]`, `$tt[1]`, `$tt[2]`, `$tt[3]`, `$tt[4]`, 1)";

        $que = mysqli_query($obj->conn, $query);
    }
    $i = $i + 1;
}

试试这个!希望对你有用。

【讨论】:

  • 至少加引号。
【解决方案2】:

我希望您能理解我在您的代码中要表达的意思。

$sub1="Mathematics";
$sub2="Chemistry";
$sub3="Biology";
$sub4="Hindi";
$sub5="History";
$sub6="Malayalam";
$sub7="Physics";

$class = 'XII';

$timetable = array
  (
  array($sub1,$sub1,$sub1,$sub1,$sub1),
  array($sub3,$sub2,$sub6,"Arts",$sub5),
  array($sub2,"Ethics","science",$sub3,"science"),
  array($sub4,$sub3,$sub5,$sub7,$sub3),
  array("Arts",$sub6,$sub5,$sub2,$sub7),
  array($sub6,$sub2,$sub4,$sub6,$sub5),
  array($sub5,$sub4,$sub3,$sub4,$sub6)
);

 for($i=0;$i<=7;$i++) {
     $query = "INSERT INTO `class`(`class`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`) VALUES ($class,$timetable[$i][0], $timetable[$i][1], $timetable[$i][2], $timetable[$i][3], $timetable[$i][4],1)";

           $que=mysqli_query($obj->conn,$query);  
}

我在这里有一些假设,例如 $class = 'XII'"class" 表有 7 个字段 'class', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday' 其中 'saturday' 似乎是假期或其他东西,因为它总是得到 1。

或者你可以考虑使用 foreach

 foreach($timetable as $ttable){
         $query = "INSERT INTO `class`(`class`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`) VALUES ($class,$ttable[0], $ttable[1], $ttable[2], $ttable[3], $ttable[4],1)";

         $que=mysqli_query($obj->conn,$query);  
  }

如果您每次都为其插入 1,为什么您在 $timetable 的第三个子数组中有第 5 个元素,我也不明白。

【讨论】:

    猜你喜欢
    • 2011-12-06
    • 2017-06-21
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 2013-08-24
    • 2021-07-25
    • 2015-06-08
    相关资源
    最近更新 更多