2014-06-05 21 views
1

我使用数据库中的值填充多选表单。我想要做的是我想要根据我提供的数据选择一些值。我有我的代码从数据库语法错误填充多个select(select = true)表单

这里的语法错误是我的代码:

<?php 

    $des_pos_id = $_POST['des_pos']; 
    $test_tags = $_POST['test_tag_arr']; 
    $test_tag=explode(',',$test_tags); 

    $sql4 = "SELECT _id, score_type from test_category where sub_code='$des_pos_id'"; 

    $sel4 = mysqli_query($connect,$sql4); 

    while($row4 = mysqli_fetch_assoc($sel4)){ 

     $option1 .= '<option value = "'.$row4['_id'].'"'echo in_array($row4['_id'], $test_tag) ? 'selected="true"' : null;'>'.$row4['score_type'].'</option>'; 

    } 

    $output = "<select name='test_tags[]' id='test_tags[]' multiple>"; 
    $output .= $option1; 
    $output .= '</select> '; 

echo $output; 
exit; 

?> 

这里是错误消息:

语法错误,意想不到的 '回响'(T_ECHO)/应用程序/ XAMPP/xamppfiles/htdocs中/温度/ ESCO-测验/控制器/ script_controller.php

+0

@GordonLinoff包括它。对不起,关于 –

回答

1

正如戈登·利诺夫告诉

注:由于回声是一个语言结构而非函数,它不能被变量函数调用。 Manual

回声doent返回任何东西,所以你cannt像你正在使用刚刚从.$row4['_id'].'"'echo in_array($row4['_id'],这里

去除回声和你的代码是容易受到SQL注入直列使用它...并使用mysqli扩展的心不是意味着你您需要正确逃生/安全形式的SQL注入消毒所有请求

所以无论使用mysqli_real_escape_string或预处理语句 (更好)

+0

请关注主要问题。 –

+0

@ChristianBurgos因为你告诉我必须说的问题是你的代码是可怕的,你不知道如何调试错误,以及如何PHP的作品 –

0

我认为这个问题是这一行:

$option1 .= '<option value = "'.$row4['_id'].'"'echo in_array($value4['_id'], $test_tag) ? 'selected="true"' : null;'>'.$row4['score_type'].'</option>'; 

我不确定你究竟想要什么。也许:

$option1 .= '<option value = "'.$row4['_id'].'"'; 
    echo in_array($value4['_id'], $test_tag) ? 'selected="true"' : null;'>'.$row4['score_type'].'</option>';