[SQL] eerst gevraagde taal checken, zo niet default taal

Pagina: 1
Acties:

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Ik ben bezig met het maken van een site die meerdere talen ondersteund. Er kan bijvoorbeeld informatie over verschillende producten worden opgevraagd.

Een record van een product is via twee manieren op te vragen. Via zijn unieke nummerieke ID en via zijn naam. Als het product via zijn ID wordt opgevraagd is er maar 1 mogelijke record waar naar wordt gevraagd.

Echter als het product via zijn naam wordt opgevraagd moet ik ook aangeven in welke taal ik het wil. Nu is dit op zich niet zo'n probleem. Nu wil ik alleen graag dat als een product in de betreffende taal niet aanwezig is, dat dan automatisch de default taal wordt gekozen.

Mijn vraag is hoe ik dit in 1 query kan verwerken. Dus dat ik 1 of 2 record selecteer, en dat als het er 2 zijn, dat de eerste dan het record is de gevraagde taal is. Anders als het 1 record is dat dan de default taal is.

Is dit mogelijk of moet ik het toch met 2 queries gaan oplossen?

Noushka's Magnificent Dream | Unity


  • cavey
  • Registratie: Augustus 2000
  • Laatst online: 11-06 07:23
sla gewoon in je tabel op meerdere omschrijvingen? Voor de engelse taal en voor de nederlandse taal?

Maak dan een functie ofzo die aan de hand van de ingestelde taal veld 1 dan wel veld 2 weergeeft... ofzo.

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Dat heb ik dus al..

Ik wil dit juist zo maken dat je doorverwezen wordt naar de default taal, als het product in de gevraagde taal niet aanwezig is.

Als het product 'wel' aanwezig is, wordt deze altijd weergegeven.

Mijn vraag is hoe ik een query kan maken die om de gevraagde taal vraagt, als deze aanwezig is wordt deze terug gegeven, anders de default taal. Is dit mogelijk in 1 query?

Noushka's Magnificent Dream | Unity


Verwijderd

Als je een Null-value terugkrijgt kun je het opvangen met een NVL. Da's dan oracle, maar ik weet niet in welke taal jij 't wilt doen.

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Ik ben in PHP bezig icm. MySQL. Maar dat maakt niet echt veel uit lijkt me.

Noushka's Magnificent Dream | Unity


Verwijderd

Je zou IFNULL() kunnen proberen in MySQL

  • PanMan
  • Registratie: November 1999
  • Laatst online: 05-08 11:19

PanMan

Spun!

Wat je wellicht kan doen, is de talen een nummer geven, en dan een order by dat nummer. Dan geef je de default taal de ene eind van het spectrum (dus heel hoog of heel laag). Als er dan een andere taal is, komt die eerst, is die er niet dan komt de default taal eerst. Je leest dus gewoon de 1e regel van je result uit, daar staat, als het goed is, dan de goede taal.

* PanMan vind het best een slimme oplossing, van zichzelf :)

Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vacuum tubes and weigh only 1.5 tons.
– Popular Mechanics, March 1949


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
PanMan schreef op 14 november 2003 @ 17:04:
Wat je wellicht kan doen, is de talen een nummer geven, en dan een order by dat nummer. Dan geef je de default taal de ene eind van het spectrum (dus heel hoog of heel laag). Als er dan een andere taal is, komt die eerst, is die er niet dan komt de default taal eerst. Je leest dus gewoon de 1e regel van je result uit, daar staat, als het goed is, dan de goede taal.

* PanMan vind het best een slimme oplossing, van zichzelf :)
Dat vind ik best een leuke oplossing. Dit is perfect eigenlijk, het is best een makkelijke manier inderdaad om aan te geven hoe belangerijk een taal is. Hoe belangerijker hoe lager het nummer bij voorbeeld (of hoger dat maakt niet uit). Ik ga dit gebruiken denk ik.

Dank je.

Noushka's Magnificent Dream | Unity

Pagina: 1