我正在尝试在不包含$parallellitem的情况下将$ManuellTagnavn保存到数据库中。我使用HTML-input来获取$ManuellTagnavn。有没有人知道我做错了什么?我想保存这两个文件,无论有没有$parallellitem。请检查以下内容:
<?php
if(isset($_POST["SettInnM"]))
{
$pattern1 = "/^[A-Z]{1}$/";
$pattern2 = "/^[0-9]{3}$/";
$ManuellTagnavn = $_POST["TagnavnM"];
$ManuellTagnavn = strtoupper($ManuellTagnavn);
$annexaM = substr($ManuellTagnavn,0,2);
$annexb1M = substr($ManuellTagnavn,2,-4);
$sequenceNrM = substr($ManuellTagnavn,4,-1);
$paralellItem = substr($ManuellTagnavn,7,8);
$navn= $_SESSION['user'];
$dato = date("d/m/Y");
$prosjektID = $_SESSION["prosjekt_id"];
$searcha = mysqli_real_escape_string($db, $_POST['SettInnM']);
$query = "select plass from annexa where plass = '$annexaM'";
$resA = mysqli_query($db, $query) or trigger_error(mysql_error(),$query);
$rowA = mysqli_fetch_assoc($resA);
$searchb1 = mysqli_real_escape_string($db, $_POST['SettInnM']);
$sql = "select format from annexb1 where format = '$annexb1M'";
$resB1 = mysqli_query($db, $sql) or trigger_error(mysql_error(),$sql);
$rowB1 = mysqli_fetch_assoc($resB1);
if ($rowA AND $rowB1 AND !preg_match($pattern1, $annexa) AND preg_match($pattern2, $sequenceNrM)) //AND preg_match($pattern1, $paralellItem)
{
echo ("Hei");
print_r($rowA);
print_r($rowB1);
$sql = "Select prosjekttag, prosjekt_id from tagnavn where prosjekttag = '$ManuellTagnavn' AND prosjekt_id = '$prosjektID'";
$resultat = mysqli_query($db, $sql);
if(mysqli_num_rows($resultat) == 0)
{
$sql = "Insert into tagnavn(prosjekttag, startdato, prosjekt_id, opprettav)" //ENDRET AV ZLATAN
."values ('$ManuellTagnavn', '$dato', '$prosjektID', '$navn')"; //ENDRET AV KAMALAN
$resultat = mysqli_query($db, $sql);
}
else
{
return;
}
}
if(!$resultat)
{
echo '<script language="javascript">';
echo 'alert("Maneult Kunne ikke sette inn i databasen")';
echo '</script>';
return;
}
}
?>发布于 2016-06-24 18:41:39
正如我看到的,您已经添加了两次相同的变量。
$ManuellTagnavn = $_POST"TagnavnM";
$ManuellTagnavn = strtoupper($ManuellTagnavn);
这就是变量冲突的主要问题。只需重命名一个,然后重试。谢谢。
发布于 2016-06-24 19:03:20
以下是你想要实现的目标吗?
$paralellItem验证,您使用$paralellItem将信息放入数据库
你的问题是你的脚本只做第二个吗?
我是一个初学者,所以我真的不知道你的代码做了什么,但我认为你必须重新考虑这一行:
if ($rowA AND $rowB1 AND !preg_match($pattern1, $annexa) AND preg_match($pattern2, $sequenceNrM)) //AND preg_match($pattern1, $paralellItem) 你可以试着这样做:
if ($rowA AND $rowB1 AND !preg_match($pattern1, $annexa)
AND preg_match($pattern2, $sequenceNrM) AND preg_match($pattern1, $paralellItem)){
// Here you have have included the $paralellItem in your if statement
}
elseif ($rowA AND $rowB1 AND !preg_match($pattern1, $annexa)
AND preg_match($pattern2, $sequenceNrM)){
// Here you didn't include the $paralellItem in your if statement.
}或者仅为preg_match($pattern1,$paralellItem)创建一个额外的if
发布于 2016-06-30 18:41:40
$ManuellTagnavn有两种不同的长度,要么是8个字母,要么是7个字母。因此,当使用substr()时,当字符串只有7个字母时,将字符串划分为8个字母将是错误的。应该使用IF-语句检查长度。在这个IF语句中,substr()应该针对$manuelltagnavn上的给定长度进行定制。
https://stackoverflow.com/questions/38011278
复制相似问题