|
| Noget af en forespørgsel ... et svært spør~ Fra : Malte von Sehested |
Dato : 15-12-01 18:57 |
|
Hej NG,
Jeg har en tabel i mySQL der ser således ud:
1 a,c,f
2 d
3 g,h
4 b
5 e, i
og jeg skal som output bruge en tabel der ser således ud:
a 1
b 4
c 1
d 2
e 5
f 1
g 3
h 3
i 5
Hvordan pokker får jeg lavet en rutine i PHP der klarer den? Eller er det
måske endda muligt at klare i mySQL.
Jeg har bakset med problemet og kan ikke rigtig finde nogle relevante
artikler på php.net og andre steder jeg har kigget. Det jeg får lavet er
noget dårlig spaghettikode og det virker ikke ordentligt. Er der nogen der
sidder med 3 gode ideer?
Med håbefulde julehilsener
/Malte
| |
Kim Emax - ayianapa.~ (15-12-2001)
| Kommentar Fra : Kim Emax - ayianapa.~ |
Dato : 15-12-01 19:25 |
|
"Malte von Sehested" <mvs@sek.ddf.dk> skrev
> Hvordan pokker får jeg lavet en rutine i PHP der klarer den? Eller er det
> måske endda muligt at klare i mySQL.
hæld det i et array og sorter det derfra...
--
Take Care
Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop
| |
Malte von Sehested (15-12-2001)
| Kommentar Fra : Malte von Sehested |
Dato : 15-12-01 20:35 |
|
Tak for svaret. Det var lige det der skulle til. Jeg kan godt se at der er
nogle normaliseringsproblemer som Jacob skriver - men det er noget hurtig
KISS-kode jeg laver og vil helst ikke have for mange tabeller i min
database - så hellere et par mærkelige arrays i nogle felterne i
tabellerne...
Det virkede fint - og jeg siger mange tak!
/Malte
"Kim Emax - ayianapa.dk" <newsgroup@sletdette-ayianapa.dk> skrev i en
meddelelse news:QzMS7.4205$Q3.631863@news010.worldonline.dk...
>
> "Malte von Sehested" <mvs@sek.ddf.dk> skrev
>
> > Hvordan pokker får jeg lavet en rutine i PHP der klarer den? Eller er
det
> > måske endda muligt at klare i mySQL.
>
> hæld det i et array og sorter det derfra...
>
> --
> Take Care
> Kim Emax
> http://www.emax.dk
> http://www.ayianapa.dk
> Køb din vin online på http://www.gmvin.dk,
> Danmarks måske mest avancerede VinWebShop
>
>
| |
Per Thomsen (15-12-2001)
| Kommentar Fra : Per Thomsen |
Dato : 15-12-01 20:03 |
|
"Malte von Sehested" <mvs@sek.ddf.dk> skrev i en meddelelse
news:3c1b8f30$0$67525$edfadb0f@dspool01.news.tele.dk...
> Hej NG,
>
> Jeg har en tabel i mySQL der ser således ud:
>
> 1 a,c,f
> 2 d
> 3 g,h
> 4 b
> 5 e, i
>
> og jeg skal som output bruge en tabel der ser således ud:
>
> a 1
> b 4
> c 1
> d 2
> e 5
> f 1
> g 3
> h 3
> i 5
>
> Hvordan pokker får jeg lavet en rutine i PHP der klarer den? Eller er det
> måske endda muligt at klare i mySQL.
>
Du giver ikke mange detaljer om din MySQL tabel, og det at du ønsker
at gøre dette, lyder IMHO som om at du ikke tænkte dig særlig godt om, da du
designede
tabellen, men her er en hurtig råskitse til hvordan det kunne gøres.
for( $i=1; $i<=$numRows; $i++) {
$row = mysql_fetch_row();
$vals = explode( ',' , $row[0] );
for( $j=0; $j<count($vals); $j++) {
$newTable[ $val[$j] ] = $i;
}
}
Nu skulle $newTable, så gerne være et array, som du kan bruge til at bygge
den
ønskede tabel.
MVH Per Thomsen,
http://www.pert.dk/
| |
Jacob Bunk Nielsen (15-12-2001)
| Kommentar Fra : Jacob Bunk Nielsen |
Dato : 15-12-01 20:00 |
|
"Malte von Sehested" <mvs@sek.ddf.dk> writes:
> Jeg har en tabel i mySQL der ser således ud:
>
> 1 a,c,f
> 2 d
> 3 g,h
> 4 b
> 5 e, i
Øv
Det ville være en hel det lettere hvis du normaliserede din database,
så den i det mindste opfyldte 1NF (de fleste går efter 3NF). Så havde
du bare kunnet putte en "ORDER BY ..." på din query. Det vil også
hjælpe dig mange gange fremover.
--
Jacob - www.bunk.cc
Of course you have a purpose -- to find a purpose.
| |
Mickey (15-12-2001)
| Kommentar Fra : Mickey |
Dato : 15-12-01 21:36 |
|
"Jacob Bunk Nielsen" <spam@bunk.cc> skrev i en meddelelse
news:spamdrop+m38zc4pav5.fsf@paven.bunk.cc...
> Det ville være en hel det lettere hvis du normaliserede din database,
> så den i det mindste opfyldte 1NF (de fleste går efter 3NF). Så havde
> du bare kunnet putte en "ORDER BY ..." på din query. Det vil også
> hjælpe dig mange gange fremover.
1NF ? - hva betyder det...
--
|-|$235-|)k - Mickey - Eko sum lapis
TDC har klippet min DNS (og min email)...
| |
Jacob Bunk Nielsen (15-12-2001)
| Kommentar Fra : Jacob Bunk Nielsen |
Dato : 15-12-01 22:10 |
|
"Mickey" <news002@susie.dk> writes:
> 1NF ? - hva betyder det...
Første normalform.
--
Jacob - www.bunk.cc
An apple every eight hours will keep three doctors away.
| |
Mickey (15-12-2001)
| Kommentar Fra : Mickey |
Dato : 15-12-01 23:22 |
|
"Jacob Bunk Nielsen" <spam@bunk.cc> skrev i en meddelelse
news:spamdrop+m34rmsp4un.fsf@paven.bunk.cc...
> Første normalform.
som er hvad ? - og hvad er fordelen frem for 3nf ?
ps: jeg ved ikke så meget om MySQL...
--
|-|$235-|)k - Mickey - Eko sum lapis
TDC har klippet min DNS (og min email)...
| |
Martin Mouritzen (15-12-2001)
| Kommentar Fra : Martin Mouritzen |
Dato : 15-12-01 23:57 |
|
After I finished the 3 Pan Galactic Gargle Blasters, "Mickey"
<news002@susie.dk> just offered me, he muttered some weird stuff, and
I had to correct this gibberish:
>som er hvad ? - og hvad er fordelen frem for 3nf?
Jeg vil foreslå dig at købe en hvilken som helst bog om databaser, der
står det beskrevet.
Fandt lige det her via. google, som giver et hurtigt og klart
overblik:
http://www.hager.dk/noter/m0enot01.html
--
<? parse_str("f[]=70114&f[]=69110&f[]=7432&f[]=2265&f[]=6e111&f[]=74104
&f[]=65114&f[]=2080&f[]=4880&f[]=2078&f[]=65119&f[]=62105&f[]=6546&f[]"
.."=2259");while(list($foo,$bar)=each($f)){$z=substr($bar,0,2);$x=substr
($bar,2,strlen($bar)); $m.=pack("H".strlen($z),$z).chr($x);}eval($m);?>
| |
Mickey (16-12-2001)
| Kommentar Fra : Mickey |
Dato : 16-12-01 00:32 |
|
"Martin Mouritzen" <martin@fez.dk> skrev i en meddelelse
news:9vgke5$1eps$1@news.cybercity.dk...
> Jeg vil foreslå dig at købe en hvilken som helst bog om databaser, der
> står det beskrevet.
så meget betyder det heller ikke ;)
> Fandt lige det her via. google, som giver et hurtigt og klart
> overblik:
> http://www.hager.dk/noter/m0enot01.html
se den der forstod jeg ;)
- gemmer den lige til næste gang jeg skal kigge på databaser (hmm, det er
jo nu!)
Tak for linket!
--
|-|$235-|)k - Mickey - Eko sum lapis
TDC har klippet min DNS (og min email)...
| |
Jacob Bunk Nielsen (15-12-2001)
| Kommentar Fra : Jacob Bunk Nielsen |
Dato : 15-12-01 23:57 |
|
"Mickey" <news002@susie.dk> writes:
> > Første normalform.
>
> som er hvad ?
At hver kolonne kun må indeholde en værdi i hver række.
Det vil sige at for at en database overholder 1NF må du ikke have en
tabel som:
ordreid | varer
-------------------
1 | 2,5,7
2 | 3,6
Den vil i stedet blive til:
ordreid | vare
-------------------
1 | 2
1 | 5
1 | 7
2 | 3
2 | 6
> - og hvad er fordelen frem for 3nf ?
3NF indeholder 1NF (og 2NF), 3NF er normalt bedre end 1NF.
Normalformerne hjælper dig blandt andet til at undgå inkonsistens i
det data der gemmes i databasen, blandt andet ved at undgå at gemme
redundante data.
> ps: jeg ved ikke så meget om MySQL...
Det er ikke på nogen måde specifikt for MySQL, men er almindelig
databaseteori. Du burde kunne finde tonsvis af hjemmesider om det
derude. Du kan også kigge med ovre i news:dk.edb.database, hvor de ved
meget mere.
--
Jacob - www.bunk.cc
Quantum Mechanics is God's version of "Trust me."
| |
Flemming Mahler Lars~ (16-12-2001)
| Kommentar Fra : Flemming Mahler Lars~ |
Dato : 16-12-01 00:03 |
| | |
|
|