Mein Kunde fragte mich, ob ich dem Projekt einen Produktcode hinzufügen kann, der anhand des Namens und der Menge generiert wird. Beispiel: Wenn das Produkt Samsung Grand 2 ist und die Menge 30 beträgt, sollte der Code wie SG2-30 aussehen. Mein Projekt ist mit PHP, MySQL und einigen JS-Skripten geschrieben.

Ist dies eine praktische Möglichkeit, Produkte in Geschäften zu codieren?

Wenn ja, wie geht das in PHP?

Ich habe versucht, 2 Variablen mit concat zu verknüpfen, aber ich kann nicht nur den ersten Buchstaben jedes Wortes nehmen.

$query3 = "INSERT INTO inventory
            (item_name, item_code, item_cat, supplier, item_location, quantity, init_price, buy_price, item_sold, date_now) 
            VALUES
            (:item_name, concat(:item_name, :quantity), :item_cat, :supplier, :item_location, :quantity, :init_price, :buy_price, :item_sold, :date)";

Ergebnis:

enter image description here

0
user5723483 5 Jän. 2016 im 11:12

4 Antworten

Beste Antwort

Fügen Sie der Produktkennung keine Menge hinzu. Die Menge ist eine variable Sache, und die Produktkennung sollte in allen Szenarien gleich sein, unabhängig von der Menge. Wenn Sie es so machen, wie Sie es gesagt haben, würden andere Probleme auftreten, z. B. beim Suchen und Indizieren usw.

Mein Vorschlag ist, eine 5-stellige zufällige Ganzzahl zu generieren und dann Ihr in Ihrer Frage besprochenes Schema anzuwenden, damit beispielsweise "Samsung Grand 2" als SG2-12345 und "Samsung Grand 2.1" als SG2-98765 codiert werden .

Meine Antwort lautet also Product initials - 5 digit random number

2
Noor Ahmed 5 Jän. 2016 im 08:25

Ist dies eine praktische Möglichkeit, Produkte in Geschäften zu codieren?

Einfache Antwort: Nein.

Dieses Schema verhindert nicht mehrdeutige Codes. Beispielsweise erzeugen "Samsung Grand 2" und "Samsung Grand 2.1" identische Codierungen (SG2).

Verwenden Sie keine solche Codierung. Die Verwendung eindeutiger Produktnummern ist eine gute Vorgehensweise.

0
maxhb 5 Jän. 2016 im 08:16

Ich akzeptiere die Antwort von maxhb bis auf seine Lösung.

Versuchen Sie den folgenden Code.

$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
0
Syed mohamed aladeen 5 Jän. 2016 im 08:20

Sie können die folgende Funktion verwenden, um die ersten Buchstaben der Zeichenfolge abzurufen.

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;

Es ist jedoch keine gute Praxis, einen solchen Produktcode zu erstellen.

0
AnkiiG 5 Jän. 2016 im 08:31