看看数组中是否存在textarea值

时间:2013-10-30 13:11:54

标签: php mysql arrays insert compare

我有一个难题。我有一个简单的表格。动态选择列表,从数据库和文本区域中提取技术人员姓名。该表格用于粘贴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

有谁知道世界上的问题是什么?另外 - 如果有人编辑了这个并使代码格式化得很漂亮 - 你怎么做?

谢谢!

1 个答案:

答案 0 :(得分:0)

更改以下行

$ results [] = $ row_Recordset1;

到下面的行 $ results [] = $ row_Recordset1 ['zip_code'];

在你的代码中,从DB获取记录时,你将每行分配到$ result数组中,这就是为什么当你要在$ result数组中检查$ value给出错误的结果时,bcoz你的$ result数组有按照上述代码的结构

阵 (     [0] =>排列         (             [zip_code] => 12312331         ) )

并且您需要以下in_array()

的数组结构

阵 (     [0] => 12312331 )