Ik ben bezig met een site voor productbeheer. Alle producten komen uit tblproduct. De benamingen komen uit tblproductname
tblproduct = ID, category
tlproductname = ID, product, lang, name
Op de site zelf is er een taalkeuze (NL, FR, EN, DU), dit kunnen er meer worden in de toekomst. Nu kan ik perfect de juiste naam ophalen die hoort bij een product
Het probleem komt er als een bepaalde taal niet voorkomt in de database (de vertaling is nog niet gemaakt). Dan zou hij de standaardtaal moeten laten zien (dit kan gewijzigd worden in een config bestand. Het is dus niet mogelijk om taal 1 als standaard te gebruiken). Als de standaardtaal ook niet bestaat mag hij een taal laten zien die wel zou bestaan. Slechts de naam in geen enkele taal voorkomt mag hij niet getoond worden.
Mogelijke oplossing:
Een query uitvoeren die alle mogelijke talen teruggeeft en die dan gaan sorteren op ID met bovenaan de gewenste taal, dan de standaardtaal, dan de rest (gesorteerd op ID)
Maar ik denk niet dat dit mogelijk is
Een tweede oplossing is een query gaan bouwen die een WHERE doet op de gewenste taal, als die niet bestaat een WHERE doet op de standaardtaal en als die niet bestaat de WHERE gewoon laat vallen. Dan is het resultaat alle overblijvende talen.
In de drie gevallen de query sorteren op ID en een LIMIT 0, 1 doen om enkel de eerst voorkomende taal terug te geven. Als de productnaam in geen enkele taal voorkomt is er geen resultaat en zal het product niet getoond worden
Theoretisch allemaal heel mooi maar ik krijg het niet in een query gegoten. Ik zou het wel met php kunnen opvangen en verschillende query's laten uitvoeren maar dat doe ik liever niet.
Ik heb al geprobeerd om een if structuur in te bouwen die gaat controleren of bepaalde waardes wel bestaan. Maar dat lijkt steeds fout te lopen.
Heb ook iets gevonden als EXIST maar dat doet ook niet helemaal wat het zou moeten doen
tblproduct = ID, category
tlproductname = ID, product, lang, name
Op de site zelf is er een taalkeuze (NL, FR, EN, DU), dit kunnen er meer worden in de toekomst. Nu kan ik perfect de juiste naam ophalen die hoort bij een product
code:
1
2
| SELECT * FROM tblproduct INNER JOIN tblproductname ON tblproduct.ID = tblproductname.product WHERE tblproduct.ID = 5 ORDER BY tblproductname.name ASC |
Het probleem komt er als een bepaalde taal niet voorkomt in de database (de vertaling is nog niet gemaakt). Dan zou hij de standaardtaal moeten laten zien (dit kan gewijzigd worden in een config bestand. Het is dus niet mogelijk om taal 1 als standaard te gebruiken). Als de standaardtaal ook niet bestaat mag hij een taal laten zien die wel zou bestaan. Slechts de naam in geen enkele taal voorkomt mag hij niet getoond worden.
Mogelijke oplossing:
Een query uitvoeren die alle mogelijke talen teruggeeft en die dan gaan sorteren op ID met bovenaan de gewenste taal, dan de standaardtaal, dan de rest (gesorteerd op ID)
Maar ik denk niet dat dit mogelijk is
Een tweede oplossing is een query gaan bouwen die een WHERE doet op de gewenste taal, als die niet bestaat een WHERE doet op de standaardtaal en als die niet bestaat de WHERE gewoon laat vallen. Dan is het resultaat alle overblijvende talen.
In de drie gevallen de query sorteren op ID en een LIMIT 0, 1 doen om enkel de eerst voorkomende taal terug te geven. Als de productnaam in geen enkele taal voorkomt is er geen resultaat en zal het product niet getoond worden
Theoretisch allemaal heel mooi maar ik krijg het niet in een query gegoten. Ik zou het wel met php kunnen opvangen en verschillende query's laten uitvoeren maar dat doe ik liever niet.
Ik heb al geprobeerd om een if structuur in te bouwen die gaat controleren of bepaalde waardes wel bestaan. Maar dat lijkt steeds fout te lopen.
Heb ook iets gevonden als EXIST maar dat doet ook niet helemaal wat het zou moeten doen