Autor Zpráva
Andrej.B
Profil
Zdravim,

mam cislo prooduktu z ktore viem, ze obsahuje farbu alebo nie.
napriklad:

PR118D8001
PR119D9325
PR11965325

Ak tam nenajde tieto pismena a cisla, je to RAW material
"D8" - hneda
"D9" - modra
"J4"  - zlta
"F1" - cierna
"A0" - biela
"Z" - zinok
"nenajde nic" - RAW

Ako si to urobit aby mi vzdy pri vytiahnuti z databazy priradilo spravnu farbu k Artiklu.
Skusal som si to vyhladat cez

<?php
$word1 = "D8";
$word2 = "D9";
$word3 = "J4";
$word4 = "F1";
$word5 = "A0";
$word6 = "Z";


if(strpos($predajnapolozka, $word1) !== false){
    $farbicka = "D8";
} 
if(strpos($predajnapolozka, $word2) !== false){
    $farba = "D9";
}

// atd.
?>

Ale to funguje len dovtedy pokial najde co ma, pokial to tam nieje, priradi poslednu co nasiel. Cize ak nasiel PR119D9325 a pridal D9, tak dalsi v poradi napriklad PR11965325 dal znova D9. Akoze to mam uplne zle. Neviem ako docielit toho co chcem.

Dakujem
juriad
Profil
Myslím, že tvůj hlavní problém je, že zpracováváš položky v cyklu a na začátku cyklu neresetuješ proměnnou.
Ted něco jako:
$farba = "raw";

Vytvoř si na to funkci:
<?php

function najdiFarbu($predajnapolozka) {
  $farby = [
    "D8" => "hneda",
    "D9" => "modra",
    "J4" => "zlta",
    "F1" => "cierna",
    "A0" => "biela",
    "Z" => "zinok"
  ];
  
  foreach ($farby as $kod => $farba) {
    if (strpos($predajnapolozka, $kod) !== false) {
      return $farba;
    }
  }
  return "raw";
}

Pak můžeš jednoduše pro každou položku snadno zavolat a nemusíš řešit, co se kdy má přepsat:
$farba = najdiFarbu($polozka);
Andrej.B
Profil
Na prvy sup, krasa a cistota.

Dakujem

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0