christdi Skrevet 17. august 2004 Del Skrevet 17. august 2004 (endret) Jeg får ikke sortering til å fungere. Når jeg klikker på overskriftene (artist, song, size og date) i tabellen ønsker jeg at kolonnen jeg klikker på skal sorteres i stigende rekkefølge. Kan noen hjelpe meg med dette. Koden jeg har er nedenfor. På forhånd takk. <? echo "<h3>MP3 Liste</h3>"; $myFiles=array(); $homedir = "."; $dir = opendir("$homedir"); while(FALSE !== ($file = readdir($dir))) { if($file=="." || $file==".."||$file=="index.php"||ereg("txt|html|doc",$file)) { } else { $myFiles[] = "$file"; } } closedir($dir); sort($myFiles); reset($myFiles); echo "<table>"; echo " <tr> <td class=s> Number </td> <td class=s> <a class=cd href=music.php?sort=artist>Artist</a> </td> <td class=s> <a class=cd href=music.php?sort=song>Song</a> </td> <td class=s> <a class=cd href=music.php?sort=size>Size</a> </td> <td class=s> <a class=cd href=music.php?sort=date>Date (Uploaded)</a> </td> </tr>"; foreach($myFiles as $value) { $sjekk_size = stat("$value"); $size = $sjekk_size['size']; $sjekk_date = stat("$value"); $date = $sjekk_date['ctime']; $counter++; $del = split("-",$value); echo " <tr> <td class=p> $counter </td> <td class=p> $del[0] </td> <td class=p> <a class=cd href=music/$value>" . substr("$del[1]",0,-4) . "</a> </td> <td class=p> " . substr("$size",0,-6) . "," . substr("$size",1,-5) . " MB </td> <td class=p> " . date("d.m.Y",$date) . " </td> </tr>"; } echo "</table>"; ?> Endret 17. august 2004 av christdi Lenke til kommentar
fiLLLipnet Skrevet 17. august 2004 Del Skrevet 17. august 2004 (endret) Hei.. jeg er ikke så god i php men jeg tror jeg så noe... $myFiles=array(); $homedir = "."; $dir = opendir("$homedir"); skal vere $homedir = "."; $dir = opendir("$homedir"); $myFiles=array($dir); Tror jeg Endret 17. august 2004 av Filip_KickAss Lenke til kommentar
christdi Skrevet 18. august 2004 Forfatter Del Skrevet 18. august 2004 Noen andre som kan svare på dette ? Lenke til kommentar
christdi Skrevet 7. september 2004 Forfatter Del Skrevet 7. september 2004 Har fremdeles trøbbel med å få til dette. Noen forslag/ekempler ? Lenke til kommentar
Torbjørn Skrevet 7. september 2004 Del Skrevet 7. september 2004 hei, til dette kan man bruke usort jeg ville laget en funksjon som henter ut hhv artist, sang og album, slik: function getData($filename){ # fyll i passende kode her. # denne koden må finne songname, artist og album utfra filnavn # og lage de i variablene $songname, $artist og $album return array(songname => $songname, artist => $artist, album => $album); } denne funksjonen kan du siden bruke i usort for ønsket sortering. men mer om det siden. Lenke til kommentar
christdi Skrevet 7. september 2004 Forfatter Del Skrevet 7. september 2004 (endret) Takk for forslag Torbjørn. Hvor i koden min bør funksjonen din komme for å få til dette ? Endret 7. september 2004 av christdi Lenke til kommentar
Torbjørn Skrevet 7. september 2004 Del Skrevet 7. september 2004 funksjonsdefinisjonen kan du legge hvor som helst. den kaller du siden opp slik: $filedata = getData("britney spears - crazy.mp3"); # etter det vil $filedata inneholde: # $filedata['artist'] vil være "britney spears" # $filedata['songname'] vil være "crazy" denne funksjonen kan du også bruke i usort, men mere om det når funksjonen er ferdig. ser at du har en del string parsing i ditt skript, det er denne koden som må inn i en funksjon for å gjøre den mer systematisk og lettere tilgjengelig og i det hele tatt gjøre at vi kan sortere på deler av filnavnet. Lenke til kommentar
christdi Skrevet 9. september 2004 Forfatter Del Skrevet 9. september 2004 Sånn er koden min blitt, men nå får jeg ikke ut noe. Hmmm. Her trengs det ekspertise til. <? echo "<h3>Demosongs</h3>"; $myFiles=array(); $homedir = "../../music"; $dir = opendir("$homedir"); while(FALSE !== ($file = readdir($dir))) { if($file=="." || $file==".."||$file=="index.php"||ereg("txt|music|Rafael",$file)) { } else { $myFiles[] = "$file"; } } closedir($dir); sort($myFiles); reset($myFiles); echo "<table>"; echo " <tr> <td class=s> Number </td> <td class=s> Artist </td> <td class=s> Song </td> <td class=s> Size </td> <td class=s> Date (Uploaded) </td> </tr>"; function getData($file) { foreach($myFiles as $value) { $counter++; $sjekk_size = stat("../../music/$value"); $size = $sjekk_size['size']; $sjekk_date = stat("../../music/$value"); $date = $sjekk_date['ctime']; $del = split("-",$value); return array(song => $song, artist => $artist, size => $size, date => date); } } $filedata['artist']; ?> Lenke til kommentar
Torbjørn Skrevet 9. september 2004 Del Skrevet 9. september 2004 funksjonen getData skal hente ut artist, tittel og album fra et filnavn du angir. ikke noe annet. ikke loope gjennom noen katalog eller noe sånt. kun parse et filnavn for relevant data. vet ikke helt hva du har tenkt, men jeg kan ikke se at din funksjon er i nærheten av å gjøre det? Lenke til kommentar
christdi Skrevet 9. september 2004 Forfatter Del Skrevet 9. september 2004 Dette ble litt for komplisert. Lenke til kommentar
Torbjørn Skrevet 9. september 2004 Del Skrevet 9. september 2004 øverst har du allerede kode som gjør dette: [...] $del = split("-",$value); echo " <tr> <td class=p> $counter </td> <td class=p> $del[0] </td> <td class=p> <a class=cd href=music/$value>" . substr("$del[1]",0,-4) . "</a> </td> <td class=p> " . substr("$size",0,-6) . "," . substr("$size",1,-5) . " MB </td> <td class=p> " . date("d.m.Y",$date) . " </td> </tr>"; } [...] du trenger å lage en funksjon som du kan kalle for å få ut data som artistnavn og sangtittel fra filnavn, slik du gjør i koden der. jeg vet ikke helt hvordan dine filer ser ut, men siden du allerede har et opplegg for å hente ut informasjon som artist og santtittel, burde du kunne greit sette dette i en funksjon som du siden kan kalle. denne funksjonen skal altså: - ta imot et filnavn som argument - hente ut tittel, sang og album fra dette filnavnet - returnere disse verdiene i en liste denne funksjonen trengs om du skal klare å sortere på enkeltkomponenter i filnavnet. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå