如果不包含 $parallel litem,php 变量将不会保存到数据库中

标签 php mysql mysqli

我正在尝试将 $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;
       }
      }        
?>

最佳答案

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

$ManuellTagnavn = $_POST["TagnavnM"];

$ManuellTagnavn = strtoupper($ManuellTagnavn);

这是变量冲突的主要问题。只需重命名一个并重试即可。谢谢。

关于如果不包含 $parallel litem,php 变量将不会保存到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38011278/

相关文章:

php - 执行 mysqli_query 时遇到问题

php - 通过过程或面向对象风格调用函数的区别

php - CSS 文件 filemtime 无需两次调用路径

MySQL 查询中的 PHP 日期变量

MySQL DECLARE/SELECT INTO 语法错误?

mysql - 创建索引时,带有 mysql 数据库迁移的 Entity Framework 失败

php - mysql插入值选择不存在

php - 上传多个文件到服务器和

php - 查询返回资源 id #10

mysql - 如何提高此查询的性能?