2016-11-21 55 views
3

我有下面的代码如何使用的foreach()正确

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标签,而我基本上是想选择所有已选择的课程。

,但它给我下面的错误

Catchable fatal error: Object of class mysqli_result could not be converted to string in C:\wamp\www\ETT Logo\Controlpanel\uploadteacher.php on line 36

注意,35号线是在上面的代码中的第2行。

+3

您的第二行似乎不太可能导致该错误。周围的代码是什么样的?你有一个SQL注入问题,你应该使用一个准备好的语句。 – jeroen

回答

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']."`)"); } 
2

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

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

更新了上面的代码,添加了您的输入,仍然给我这个错误,我发布上面 –