Portaal Portaal Pingviini veeb foorumi pealeht
  Viki  |  IRC  |  Otsing  |  Küsimused ja vastused  |  Profiil  |  Privaatsõnumite vaatamiseks logi sisse  | Logi sisse või Registreeru
<empty>
Vaata järgmist teemat
Vaata eelmist teemat

Postita uus teemaVasta teemale
Autor Sõnum
v6lur
Vana Pingviin
Vana Pingviin


Vanus: 37
Liitunud: 08.07.2005
Postitused: 667
Asukoht: Kopenhaagen/Tartu
Distributsioon: Arch
blank.gif
postituspostitatud: 10.06.2008, 20:01  postituse pealkiri: Question for i in <paarisridade sisu>; do ...  

Käsk
Kood:
dcop amarok collection query "SELECT ALL t.title, t.artist FROM tags t WHERE t.title like '%$search%' ORDER BY t.title"
otsib Amaroki muusikakogust lugude pealkirjadest mustrit $search ning väljastab sellise jada:
Kood:
Otsingutulemusele vastav lugu nr 1
101
Lugu nr 2
874
Lugu 3
278
...
Lugu n
1667
Ehk siis esitajate nimede asemel on nende numbrilised ID-d. Need ID-d saab (ükshaaval) nimedeks käsuga
Kood:
dcop amarok collection query "SELECT DISTINCT t.name FROM artist t WHERE t.id like '<ID>'"


Siit küsimus: kuidas saab esimese käsu väljundis esitajate ID-d asendada nende nimedega (nii, et lugude pealkirjad jääks puutumata)? Kas "for i in list; do ..." saab rakendada ainult paarisnumbrilistele ridadele?

Või veel parem, kuidas saaks väljundi vormistada kujul
Kood:
Otsingutulemusele vastav lugu nr 1 (Esitaja 1)
Lugu nr 2 (Esitaja 2)
Lugu 3 (Esitaja 3)
...
Lugu n (Esitaja n)
?

_________________
"Sleep, she is for the weak."

priit
Vana Pingviin
Vana Pingviin


Vanus: 40
Liitunud: 04.08.2005
Postitused: 521
Asukoht: Tartu
Distributsioon: CentOS / OS X
estonia.gif
postituspostitatud: 11.06.2008, 07:03  postituse pealkiri:  (teema puudub)  

Kood:
SELECT tags.title, artist.name FROM tags INNER JOIN artist ON tags.artist = artist.id WHERE tags.title LIKE '%$search%' ORDER BY tags.title;


Edit: nagu vist sul vaja
Selline bash skript
Kood:

#!/bin/bash
IFS='
'
array=(`dcop amarok collection query "select tags.title, artist.name from tags inner join artist on tags.artist = artist.id where tags.title like '%$1%' order by tags.title;"`)
len=${#array[*]}
i=0
while [ $i -lt $len ]; do
    echo -n ${array[$i]}
    echo -n " ("
    echo -n ${array[$i+1]}
    echo ")"
    let i=i+2
done

väljastab peale käsku
Kood:
sh test.sh Walk
minu arvutis sellised read:

Kood:

Walking Spanish (Tom Waits)
You'll Never Walk Alone (Johnny Cash)


v6lur
Vana Pingviin
Vana Pingviin


Vanus: 37
Liitunud: 08.07.2005
Postitused: 667
Asukoht: Kopenhaagen/Tartu
Distributsioon: Arch
blank.gif
postituspostitatud: 11.06.2008, 10:54  postituse pealkiri:  (teema puudub)  

Suur aitäh! Smile

_________________
"Sleep, she is for the weak."

Näita (aja järgi):      
Postita uus teemaVasta teemale


Vaata järgmist teemat
Vaata eelmist teemat
Powered by phpBB2 Plus based on phpBB © 2001/7 phpBB Group