首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果不包含$parallellitem,php变量将不会保存到数据库中。

如果不包含$parallellitem,php变量将不会保存到数据库中。
EN

Stack Overflow用户
提问于 2016-06-24 18:32:35
回答 3查看 50关注 0票数 0

我正在尝试在不包含$parallellitem的情况下将$ManuellTagnavn保存到数据库中。我使用HTML-input来获取$ManuellTagnavn。有没有人知道我做错了什么?我想保存这两个文件,无论有没有$parallellitem。请检查以下内容:

代码语言:javascript
复制
    <?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;
       }
      }        
?>
EN

回答 3

Stack Overflow用户

发布于 2016-06-24 18:41:39

正如我看到的,您已经添加了两次相同的变量。

$ManuellTagnavn = $_POST"TagnavnM";

$ManuellTagnavn = strtoupper($ManuellTagnavn);

这就是变量冲突的主要问题。只需重命名一个,然后重试。谢谢。

票数 0
EN

Stack Overflow用户

发布于 2016-06-24 19:03:20

以下是你想要实现的目标吗?

  • 如果$paralellItem已由preg_match验证,则您使用$paralellItem
  • If $paralellItem将信息放入数据库,而$paralellItem未通过

$paralellItem验证,您使用$paralellItem将信息放入数据库

你的问题是你的脚本只做第二个吗?

我是一个初学者,所以我真的不知道你的代码做了什么,但我认为你必须重新考虑这一行:

代码语言:javascript
复制
if ($rowA AND $rowB1 AND !preg_match($pattern1, $annexa) AND preg_match($pattern2, $sequenceNrM)) //AND preg_match($pattern1, $paralellItem) 

你可以试着这样做:

代码语言:javascript
复制
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

票数 0
EN

Stack Overflow用户

发布于 2016-06-30 18:41:40

$ManuellTagnavn有两种不同的长度,要么是8个字母,要么是7个字母。因此,当使用substr()时,当字符串只有7个字母时,将字符串划分为8个字母将是错误的。应该使用IF-语句检查长度。在这个IF语句中,substr()应该针对$manuelltagnavn上的给定长度进行定制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38011278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档