如何正确使用foreach()

时间:2016-11-21 12:04:20

标签: php html html5

我有以下代码

foreach ($_POST['courses'] as $course ) {
      $sql1 = "SELECT id FROM  `courses` where title='".$course."'";
      $course_id = mysqli_query( $connection, $sql1 ); 
    $sql2=mysqli_query($connection,"INSERT INTO `ett`.`course-teacher` (`courses_id` ,`teacher-id`) VALUES ('".$teacher_id."`,`".$course_id."`)"); }

课程是一个多选的html标签,我基本上试图选择所有已选择的课程。

但它给了我以下错误

  

捕获致命错误:无法将类mysqli_result的对象转换为第36行的C:\ wamp \ www \ ETT Logo \ Controlpanel \ uploadteacher.php中的字符串

请注意,第35行是上面代码中的第2行。

2 个答案:

答案 0 :(得分:4)

mysqli_query()会返回一个结果对象,而不仅仅是您想要的字段。您需要获取结果数据 - 只是隐式地将其转换为字符串将无效。

foreach ($_POST['courses'] as $course ) {
      $sql1 = "SELECT id FROM  `courses` where title='".$course."'";
      $result = mysqli_fetch_assoc(mysqli_query( $connection, $sql1 )); 
      $result2 = mysqli_fetch_assoc(mysqli_query($connection,"INSERT INTO `ett`.`course-teacher` (`courses_id` ,`teacher-id`) VALUES ('".$teacher_id."`,`".$result['id']."`)"); }

答案 1 :(得分:2)

试试这个,你在哪里错过了一些引号,有些则在错误的地方。

foreach( $_POST['courses'] as $course ) 
{
  $sql = "SELECT id FROM  `courses` where title='".$course."'";
  $course_id = mysqli_query( $connection, $sql ); 
}