2016-09-17 6 views
1

나는 체크리스트를 사용하여 다양한 사용자의 이름을 선택하고 정보를 얻을 수있는 검색 양식을 만들고 있습니다.각 루프의 값을 mysql로 ​​전달합니다. where 절

는 기본적으로 나는 그런

내가 이름을 통과하려고에서 내가 선택할 수있는이 이름을 내 체크리스트를 채우는 것입니다

<?php do { ?> 
     <label style="color:#000; " for="input Address"> <?php echo $row_marketer['Username']; ?> <input type="checkbox" name="multiagent[]" value="<?php echo $row_marketer['Username']; ?>" /></label> 
     <?php } while ($row_marketer = mysql_fetch_assoc($marketer)); ?> 

사용하여이 사용자의 이름을 조합 및 게시하여 시작 각 루프에 대해를 사용하여 내 SQL 문에서 내 where 절.

foreach($_POST['multiagent'] as $idx => $studentname) { 

$query_certs = sprintf("SELECT * FROM transactions WHERE Username IN ('". $studentname ."')", GetSQLValueString($colname3_certs, "text"),GetSQLValueString($colname_certs, "text"),GetSQLValueString($colname2_certs, "text")); 

} 
$query_limit_certs = sprintf("%s LIMIT %d, %d", $query_certs, $startRow_certs, $maxRows_certs); 
$certs = mysql_query($query_limit_certs, $kbl) or die(mysql_error()); 
$row_certs = mysql_fetch_assoc($certs); 

이 작업을 수행 한 후에는 각 루프의성에 만 전달됩니다.

+0

해당 레코드를 사용하지 않습니다. –

답변

1

게시 필드에 값 배열이 있으므로 루프 대신 implode 함수를 사용할 수 있습니다.

if (isset($_POST['multiagent']) && is_array ($_POST['multiagent'] )) { 

    //implode user name in string 
    $studentname = implode("','",$_POST['multiagent']); 

    //Write query string 
    $query_certs = "SELECT * FROM transactions WHERE Username IN ('". $studentname ."')"; 

    //Add limit in query 
    $query_limit_certs = sprintf("%s LIMIT %d, %d", $query_certs, $startRow_certs, $maxRows_certs); 

    //Execute query 
    $certs = mysql_query($query_limit_certs, $kbl) or die(mysql_error()); 

    //Get row 
    $row_certs = mysql_fetch_assoc($certs); 
}