将每个循环的值传递给 mysql where 子句
Pass values from for each loop to mysql where clause
我正在创建一个搜索表单,我应该能够在其中使用清单select 各种用户的姓名,然后获取他们的信息。
基本上我已经开始使用
整理和发布这些用户的名字
<?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)); ?>
这是为了用我可以select来自
的名字填充我的清单
然后我尝试使用 for each 循环将名称传递到 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);
完成此操作后,我的问题是它只在 for each 循环中传递姓氏。
由于您在 post 字段中有一个值数组,您可以使用 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);
}
我正在创建一个搜索表单,我应该能够在其中使用清单select 各种用户的姓名,然后获取他们的信息。
基本上我已经开始使用
整理和发布这些用户的名字 <?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)); ?>
这是为了用我可以select来自
的名字填充我的清单然后我尝试使用 for each 循环将名称传递到 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);
完成此操作后,我的问题是它只在 for each 循环中传递姓氏。
由于您在 post 字段中有一个值数组,您可以使用 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);
}