我的客户问我是否可以添加到项目中,根据其名称生成的产品代码和数量。 每个例子:如果产品是Samsung Grand 2,数量是30,代码应该看起来像SG2-30。 我的项目是用PHP,MySQL和一些JS脚本编写的。
首先,这是一种在商店中对产品进行编码的实用方法吗?
如果是,如何在PHP中完成?
我尝试使用if(isset($_POST['username'])){
$userName = $_POST['username'];
$query = "SELECT id, name, username, telno FROM users WHERE username = ?";
$stmt = $conn->prepare($query);
$stmt->bind_param('s', $userName);
$stmt->execute();
$res = $stmt->get_result();
$row = $res->fetch_array();
$_SESSION['id'] = $row['id'];
$_SESSION['name'] = $row['name'];
$_SESSION['username'] = $row['username'];
$_SESSION['telno'] = $row['telno'];
$query = "SELECT useradvert.name2, useradvert.color2, useradvert.hobby2,useradvert.radiobtn, useradvert.kupon, useradvert.image, useradvert.image2 FROM users INNER JOIN useradvert ON users.id=useradvert.id ";
$stmt = $conn->prepare($query);
$stmt->execute();
$res = $stmt->get_result();
$row2 = $res->fetch_array();
// $_SESSION['name'] = $row2['name'];
$_SESSION['name2'] = $row2['name2'];
$_SESSION['color2'] = $row2['color2'];
$_SESSION['hobby2'] = $row2['hobby2'];
$_SESSION['radiobtn'] = $row2['radiobtn'];
$_SESSION['kupon'] = $row2['kupon'];
$_SESSION['image'] = $row2['image'];
$_SESSION['image2'] = $row2['image2'];
}
?>
连接2个变量,但我不能只接受每个单词的第一个字母。
concat
结果:
答案 0 :(得分:2)
不要将数量附加到产品标识符。数量是一个可变的东西,产品标识符在所有情况下都应该相同,无论数量是多少。如果你这样做,你说的其他问题会增加,例如搜索和索引等。
我的建议是生成一个5位随机整数,然后应用您在问题中讨论的方案,例如" Samsung Grand 2"将编码为SG2-12345和#34; Samsung Grand 2.1"将编码为SG2-98765。
所以我的答案是 <link rel="import" href="../bower_components/polymer/polymer.html">
<script src='https://cdn.firebase.com/js/client/2.2.1/firebase.js'></script>
<link rel="import" href="../bower_components/paper-icon-button">
<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'></script>
<dom-module id="sample-page">
<style>
</style>
<template>
<div class="items">
</div>
</template>
</dom-module>
<script>
Polymer({
is: "sample-page",
});
$(document).ready(function(){
;
var rootRef = "myfirebase ref......."
rootRef.on("child_added", function (snapshot, prevChildKey) {
var pointData = snapshot.val();
snapshot.forEach(function (childSnap) {
$('#items').append( pointData.user);
var key = childSnap.key();
//console.log('here come');
// console.log("Title: " + pointData.user);
})
// });
// });
</script>
答案 1 :(得分:0)
首先,这是一种在商店中对产品进行编码的实用方法吗?
简单回答:不。
此方案不会阻止暧昧的代码。例如,“Samsung Grand 2”和“Samsung Grand 2.1”将生成相同的编码(SG2)。
不要使用这种编码。使用独特的产品编号是一种很好的做法。
答案 2 :(得分:0)
您可以使用以下函数来获取字符串的第一个字母。
function get_first_letters($string)
{
return preg_replace('/(\B.|\s+)/','',$string);
}
$str = 'Samsung Galaxy V 2.1.3';
$first_letters = strtoupper(get_first_letters($str));
echo $first_letters;
虽然创建像这样的产品代码不是一个好习惯。
答案 3 :(得分:0)
我接受上述maxhb的答案,但是他的解决方案。
请尝试以下代码。
$splitWords = explode(" ", "Samsung Grand 2");
$firstLetters = "";
foreach ($splitWords as $word) {
$firstLetters .= $word[0];
}
$quantity = 30; //get your quantity from your database
$code = $firstLetters."-".$quantity; //will result SG2-30