我正在尝试将$ManuellTagnavn
保存到数据库中,而不包括$parallellitem
。我使用HTML输入来获取$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;
}
}
?>
答案 0 :(得分:0)
我可以看到你已经两次添加了相同的变量。
$ ManuellTagnavn = $ _POST [“TagnavnM”];
$ ManuellTagnavn = strtoupper($ ManuellTagnavn);
这是与变量冲突的主要问题。只需重命名一个,然后再试一次。感谢。
答案 1 :(得分:0)
以下是您想要实现的目标吗?
你的问题是你的脚本只做了第二次吗?
我是初学者,所以我不能真正了解你的代码所做的事情,但我认为你必须重新考虑这一行:
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)制作一个额外的
答案 2 :(得分:0)
$ ManuellTagnavn有两种不同的长度,无论是8let还是7let。因此,当使用substr()时,如果字符串仅为7个字符,则将字符串分割为8个字符串是错误的。应该用IF语句检查长度。在这个IF语句中,应该在$ manuelltagnavn上为给定长度定制substr()。