/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Et godt spørgsmål:
Fra : Stig Nørgaard Jepsen


Dato : 18-12-01 11:54

Jeg programmere i PHP og bruger hertil noget MySQL database... i den
forbindelse er jeg kommet frem til 'et godt spørgsmål'!

Har en tabel:
CREATE TABLE texts (
textid mediumint(9) NOT NULL auto_increment,
languageid char(2) NOT NULL default 'da',
textkey varchar(32) NOT NULL default '',
textvalue text NOT NULL,
PRIMARY KEY (textid),
)

Eksempel:
1 da kb1 tastatur1
2 en kb1 keyboard1
3 da mo5 skærm5
4 en sc2 scanner2

I php har jeg så to variabler - en primær(da) og en sekundær(en) languageId.

I forhold til tabellen ovenover, skal det så altid være sådan her:
Når der vælges ud fra textkey (textkey = 'kb1'), og det resulterer i 2
rækker med hvert sit languageid (prim. og sek.) skal den kun hente den række
med den primære languageid.
Dvs. textkey = 'kb1' skal returnere rækken: 1 da kb1 tastatur1. (og kun
denne række)
Hvis textkey = 'mo5' skal der returneres: 3 da mo5 skærm5
Hvis textkey = 'sc2' skal der returneres: 4 en sc2 scanner2

Er det til at forstå?

På forhånd tak for hjælpen!

Med venlig hilsen
Stig



 
 
Stig Nørgaard Jepsen (21-12-2001)
Kommentar
Fra : Stig Nørgaard Jepsen


Dato : 21-12-01 14:28

Da jeg ikke har fået svar her endnu,
Har jeg postet dette spørgsmål på eksperten.dk, hvor der er 230point på
højkant.
/Stig

"Stig Nørgaard Jepsen" <stigen@mail.dk> wrote in message
news:3c1f1f8e$0$55652$edfadb0f@dspool01.news.tele.dk...
> Jeg programmere i PHP og bruger hertil noget MySQL database... i den
> forbindelse er jeg kommet frem til 'et godt spørgsmål'!
>
> Har en tabel:
> CREATE TABLE texts (
> textid mediumint(9) NOT NULL auto_increment,
> languageid char(2) NOT NULL default 'da',
> textkey varchar(32) NOT NULL default '',
> textvalue text NOT NULL,
> PRIMARY KEY (textid),
> )
>
> Eksempel:
> 1 da kb1 tastatur1
> 2 en kb1 keyboard1
> 3 da mo5 skærm5
> 4 en sc2 scanner2
>
> I php har jeg så to variabler - en primær(da) og en sekundær(en)
languageId.
>
> I forhold til tabellen ovenover, skal det så altid være sådan her:
> Når der vælges ud fra textkey (textkey = 'kb1'), og det resulterer i 2
> rækker med hvert sit languageid (prim. og sek.) skal den kun hente den
række
> med den primære languageid.
> Dvs. textkey = 'kb1' skal returnere rækken: 1 da kb1 tastatur1. (og kun
> denne række)
> Hvis textkey = 'mo5' skal der returneres: 3 da mo5 skærm5
> Hvis textkey = 'sc2' skal der returneres: 4 en sc2 scanner2
>
> Er det til at forstå?
>
> På forhånd tak for hjælpen!
>
> Med venlig hilsen
> Stig
>
>



Mikkel Bundgaard (21-12-2001)
Kommentar
Fra : Mikkel Bundgaard


Dato : 21-12-01 15:09

"Stig Nørgaard Jepsen" <stigen@mail.dk> wrote in message news:3c1f1f8e$0$55652$edfadb0f@dspool01.news.tele.dk...
<SNIP>
> Eksempel:
> 1 da kb1 tastatur1
> 2 en kb1 keyboard1
> 3 da mo5 skærm5
> 4 en sc2 scanner2
>
> I php har jeg så to variabler - en primær(da) og en sekundær(en)
> languageId.
>
> I forhold til tabellen ovenover, skal det så altid være sådan her:
> Når der vælges ud fra textkey (textkey = 'kb1'), og det resulterer
> i 2 rækker med hvert sit languageid (prim. og sek.) skal den kun
> hente den række med den primære languageid.
> Dvs. textkey = 'kb1' skal returnere rækken: 1 da kb1 tastatur1.
> (og kun denne række)
> Hvis textkey = 'mo5' skal der returneres: 3 da mo5 skærm5
> Hvis textkey = 'sc2' skal der returneres: 4 en sc2 scanner2
>
> Med venlig hilsen
> Stig
Hej Stig

Dette er et skud fra hoften - og jeg kender intet til MySQL og PHP
- så det kan godt være at det ikke er den bedste løsning, men den
burde være let at implementere. Sådan som jeg ser det har du to
muligheder:
1. Udhent begge poster (hvis der er det) og så find den rigtige. Man
kan i php sikkert let løbe posterne igennem.
2. Først prøve at udhente den række med den primære languageid,
hvis dette ikke lykkes, så udhent den med den sekundære.

Måske er det muligt at lave en eller anden form for avanceret
forespørgsel, men jeg kan ikke lige komme på noget fornuftigt.
--
Mikkel Bundgaard
IT University of Copenhagen
http://officehelp.gone.dk
Codito, Ergo Sum



Stig Nørgaard Jepsen (21-12-2001)
Kommentar
Fra : Stig Nørgaard Jepsen


Dato : 21-12-01 17:45

> Dette er et skud fra hoften - og jeg kender intet til MySQL og PHP
> - så det kan godt være at det ikke er den bedste løsning, men den
> burde være let at implementere. Sådan som jeg ser det har du to
> muligheder:
> 1. Udhent begge poster (hvis der er det) og så find den rigtige. Man
> kan i php sikkert let løbe posterne igennem.

Yep, det er den mulighed jeg har, hvis jeg ikke kan finde frem til noget
andet. Jeg synes dog det mest ultimative må være kun at hente det som der er
brug for, og undgå at behandle data'ene med PHP bagefter.

> 2. Først prøve at udhente den række med den primære languageid,
> hvis dette ikke lykkes, så udhent den med den sekundære.

Tænker du på at lave to queries? Sådan så at hvis den første query ikke
lykkes, så prøve man med den næste istedet?

> Måske er det muligt at lave en eller anden form for avanceret
> forespørgsel, men jeg kan ikke lige komme på noget fornuftigt.

Det kan godt være at MySQL ikke kan udføre denne opgave alene.

Men tak alligevel :)

Mvh Stig



Mikkel Bundgaard (21-12-2001)
Kommentar
Fra : Mikkel Bundgaard


Dato : 21-12-01 18:10

"Stig Nørgaard Jepsen" <stigen@mail.dk> wrote in message news:3c236683$0$55568$edfadb0f@dspool01.news.tele.dk...
> > Dette er et skud fra hoften - og jeg kender intet til MySQL og
> > PHP - så det kan godt være at det ikke er den bedste løsning,
> > men den burde være let at implementere. Sådan som jeg ser
> > det har du to muligheder:
> > 1. Udhent begge poster (hvis der er det) og så find den rigtige.
> > Man kan i php sikkert let løbe posterne igennem.
>
> Yep, det er den mulighed jeg har, hvis jeg ikke kan finde frem til
> noget andet. Jeg synes dog det mest ultimative må være kun at
> hente det som der er brug for, og undgå at behandle data'ene
> med PHP bagefter.
Jeg tror at dette er den bedste løsning, specielt da du kun får
maksimalt to poster tilbage.

> > 2. Først prøve at udhente den række med den primære
> > languageid, hvis dette ikke lykkes, så udhent den med den
> > sekundære.
>
> Tænker du på at lave to queries? Sådan så at hvis den første
> query ikke lykkes, så prøve man med den næste istedet?
Ja. Man kan vel fra php spørge om der blev returneret nogle poster.
Hvis dette ikke er tilfældet prøver man så med den anden
forespørgsel.

> > Måske er det muligt at lave en eller anden form for avanceret
> > forespørgsel, men jeg kan ikke lige komme på noget fornuftigt.
>
> Det kan godt være at MySQL ikke kan udføre denne opgave
> alene.
Jeg kom lige i tanke om, at du bare kunne prøve at udtage begge
rækker sorteret sådan, at den pimære altid kom før den sekundære.
Nu kan du bare bruge den første post, som dit resultat .

> Men tak alligevel :)
>
> Mvh Stig

Håber du kan bruge det til noget Stig .
--
Mikkel Bundgaard
IT University of Copenhagen
http://officehelp.gone.dk
Codito, Ergo Sum



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408927
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste