我有一个难题。我有一个简单的表格。动态选择列表,从数据库和文本区域中提取技术人员姓名。该表格用于粘贴zipcodes(格式为:12345,12346,12347等),并将它们与技术ID一起逐个插入表格中。这很棒!但是,任何拉链都不会 - 因为我必须有许可才能使用它。
为了解决这个恼人的问题,我创建了一个包含我服务的邮政编码列表的表格。所以,我有这些邮政编码的记录集,我将它们插入一个数组,然后在插入之前检查该数组中是否存在textarea的值。除外,它不起作用。阵列打印很好 - 这样才有效。插入的东西工作正常 - 就像我添加in_array之前的东西一样。在一起 - 他们就像我的女朋友和我。它只是不会在一起工作。
这是我的代码:
//This is my recordset and where I'm putting it into an array
mysql_select_db($database_localhost, $localhost);
$query_Recordset1 = "SELECT zip_code FROM zip_code";
$Recordset1 = mysql_query($query_Recordset1, $localhost) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
$results = array();
do {
$results[] = $row_Recordset1;
} while ($row_Recordset1 = mysql_fetch_assoc($Recordset1));
//DONE ARRAY
//Now I'm taking zipcodes pasted in textarea so they can be inserted one at a time
$zipcodes = explode(",", $_POST['textarea']);
$countZips = (count($zipcodes));
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
foreach($zipcodes as $key=>$value)
{
while ($countZips >= 1) {
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
//DONE textarea
//If statement to see if value exists in array
if (in_array($value, $results)){
$insertSQL = sprintf("INSERT INTO zip_zip (zip_code, tech_id) VALUES (%s, %s)",
GetSQLValueString($value, "int"),
GetSQLValueString($_POST['select'], "int"));
mysql_select_db($database_localhost, $localhost);
$Result1 = mysql_query($insertSQL, $localhost) or die(mysql_error());
$countZips--;
} else {
$countZips--;
}
//Done value exists
//Now moving to next page when done
}
$insertGoTo = "index.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
}
//END
有谁知道世界上的问题是什么?另外 - 如果有人编辑了这个并使代码格式化得很漂亮 - 你怎么做?
谢谢!
答案 0 :(得分:0)
更改以下行
$ results [] = $ row_Recordset1;
到下面的行 $ results [] = $ row_Recordset1 ['zip_code'];
在你的代码中,从DB获取记录时,你将每行分配到$ result数组中,这就是为什么当你要在$ result数组中检查$ value给出错误的结果时,bcoz你的$ result数组有按照上述代码的结构
阵 ( [0] =>排列 ( [zip_code] => 12312331 ) )
并且您需要以下in_array()
的数组结构阵 ( [0] => 12312331 )