Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Phpmyadmin中创建Concat触发器_Php_Mysql_Phpmyadmin - Fatal编程技术网

在Phpmyadmin中创建Concat触发器

在Phpmyadmin中创建Concat触发器,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我画了一张空白。(咖啡因用完了)。我试图在Phpmyadmin中创建一个触发器,在每行中添加两个字符“MR”。我不希望将字符添加到主id中,而是添加到标记为mer_sku的列中。此外,其他数据也将从html表单添加到此mer_sku col中,因此需要对数据进行压缩 我只是想澄清一下,我试图在phpMyAdminGUI中触发 谢谢 忘记添加我尝试过的内容 第1行出现错误 尝试在查询部分运行GUI,而不是GUI。 我认为错误是因为mysql处理作为触发器声明的结尾 因此,在为触发器编写代码之前,

我画了一张空白。(咖啡因用完了)。我试图在Phpmyadmin中创建一个触发器,在每行中添加两个字符“MR”。我不希望将字符添加到主id中,而是添加到标记为mer_sku的列中。此外,其他数据也将从html表单添加到此mer_sku col中,因此需要对数据进行压缩

我只是想澄清一下,我试图在phpMyAdminGUI中触发

谢谢

忘记添加我尝试过的内容

第1行出现错误


尝试在查询部分运行GUI,而不是GUI。 我认为错误是因为mysql处理
作为触发器声明的结尾

因此,在为触发器编写代码之前,请重新定义分隔符

请尝试下面的代码

delimiter |

CREATE TRIGGER `merch_label` 
BEFORE INSERT ON `merchandise` 
FOR EACH ROW  
BEGIN  
    SET NEW.mer_sku = CONCAT(NEW.mer_sku, 'MR'); 
END;
|

delimiter ;

所以,让我们先发布我的代码,然后我将解释我的动机和另一个我正试图解决的问题

?php 
if (isset($_POST['submit'])) {
    $mfr   = $_POST['mfr'];
    $type  = $_POST['type'];
    $desc  = $_POST['description'];
    $price = $_POST['price'];
    $qty   = $_POST['qty'];

    $last_id = 0;
    $sql = "SELECT m_id FROM merchandise";
    $result = mysqli_query($connection, $sql);
    while($row = mysqli_fetch_assoc($result)) {
    $last_id = $row["m_id"];
    }
    $next_id = $last_id+1;
    $conc = number_format($next_id/100,2,'-','');

    $query = "INSERT INTO merchandise (mfr,type,description,mer_sku,price,qty) ";
    $query .="VALUES ('$mfr','$type','$desc','MR{$mfr}{$conc}','$price','$qty')";
    $add_sku_query = mysqli_query($connection, $query);
    confirmQuery($add_sku_query);
    $alert = <<<DELIMETER

<div class='alert alert-warning alert-dismissible fade in' role='alert'>
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
    <span aria-hidden="true">&times;</span>
</button>
<strong>Inventory Updated!</strong> <a href='inventory.php?view_all_inventory'>View All Inventory</a>
</div>
DELIMETER;

    echo $alert;
    }
?>
我希望我能解释我的想法。无论如何,这是我目前的状态,我正在努力创造我所需要的解决方案


希望这对任何人都有所帮助,或者如果有人有一些有用的意见,那将是非常好的,非常感谢。谢谢

如果您不显示您尝试的内容,我们无法帮助您修复代码。所以这不是免费的编码服务。我忘记添加屏幕截图了(
SET NEW.mer_sku=CONCAT(NEW.mer_sku,'MR')
谢谢。但是,我得到了一个语法错误代码。#1064?不确定语法错误在哪里。您在行的末尾有
?这仍然不起作用。我继续得到一个错误。无法识别的语句类型。(在位置29的“BEFORE”附近)或者我会收到此错误。您的SQL语法有错误;请检查与您的MariaDB服务器版本对应的手册,以了解第8行“END”附近使用的正确语法。但是,触发器函数不起作用。我做了一些更改,我能够使代码正常工作。在此过程中,我发现了另一个问题。我将更新此帖子发现了类似的问题。但是,这是使用MyISAM DB引擎并自动递增主键,我不想这样做。因此基于链接的问题。我要查找的结果接近于此。
**CURRENT AUTO INCREMENT, [NOT WHAT I WHAT]**
MR500-01
MR600-02
MR700-03
MR500-04
MR600-05
MR700-06

**IDEAL AUTO INCREMENT, [WHAT I WANT]**
MR500-01
MR600-01
MR700-01
MR500-02
MR600-02
MR700-02