Sorteren op tracknummer *opgelost*

PHP, HTML, Joomla, WordPress, etc..
Plaats reactie
Dwarrel

Sorteren op tracknummer *opgelost*

Ongelezen bericht door Dwarrel »

Heb maar weer eens een vraagje...

Wij zijn bezig om albums toe te voegen om daaruit nummers te laten requesten. Dit werkt helemaal perfect op 1 klein puntje na. Kijk meer eens hier.

We willen nu graag dat zo wordt weergegeven:

Artiest - Album - TRACKNUMMER - Song

Alles word nu op alfabetische volgorde van de song gezet en we willen dit dus graag op volgorde van tracknummer.

En indien mogelijk dat er voor een enkel nummer een 0 wordt geplaatst. Ik heb geprobeerd in SAM bij de song er een 0 voor te zetten maar die wordt weer keihard weggehaald.

Update
: Voor degene die ook een oplossing zoeken:

Code: Selecteer alles

$db->open("SELECT songlist.* , categorylist.* FROM songlist, categorylist $where GROUP BY trackno ORDER BY artist ASC, title ASC", $limit, $start);
Veranderen in:

Code: Selecteer alles

$db->open("SELECT songlist.* , categorylist.* FROM songlist, categorylist $where GROUP BY songid ORDER BY artist ASC, trackno ASC", $limit, $start);
Nu alleen voor het gezicht nog een 0 voor de enkele nummers.

Dwarrel....
Gebruikersavatar
Wout
Beheerder
Berichten: 3522
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: Sorteren op tracknummer

Ongelezen bericht door Wout »

Kan op dit moment niet testen.
Maar ik dacht op deze manier.

Code: Selecteer alles

if($row["trackno"] <10) $row["trackno"]="0$row["trackno"]";
Afbeelding
Dwarrel

Re: Sorteren op tracknummer

Ongelezen bericht door Dwarrel »

Wout schreef:Kan op dit moment niet testen.
Maar ik dacht op deze manier.

Code: Selecteer alles

if($row["trackno"] <10) $row["trackno"]="0$row["trackno"]";
En waar zou ik dit dan moeten plaatsen:

Code: Selecteer alles

<?
 require("config.php"); 
 

  $where = " WHERE categoryid = 11 AND categorylist.songid=songlist.id AND (songtype='S') AND (status=0)  ";
 
 Def($start,0);
 Def($limit,50);
 Def($search,"");

 //########## BUILD SEARCH STRING ################
 
 if(!empty($search))
 {
   $words = Array();
   $temp = explode(' ',$search);
   reset($temp);
   while(list($key,$val) = each($temp))
   {
    $val = trim($val);
    if(!empty($val))
	 $words[] = $val;
   }
	 

   $where2 = "";	  
   reset($words);
   while(list($key,$val) = each($words))	 
   {
     if(!empty($where2)) $where2 .= " OR ";
	 $val = "%$val%";
	 $db->AddStr($val); $db->AddStr($val); $db->AddStr($val);
     $where2 .= " (trackno like :val1) OR (album like :val2) OR (artist like :val3)";
   }
   $where .= "AND ($where2) ";
}
 
 if((isset($letter)) && (!$letter==""))
 {
  $nextletter = chr(ord($letter)+1);
  if($letter=='0')
   $where .= " AND NOT((artist>='A') AND (artist<'ZZZZZZZZZZZ')) ";
  else
   {
    $db->AddStr($letter); $db->AddStr($nextletter);
    $where .= " AND ((artist>=:letter) AND (artist<:nextletter)) ";
   }
 }
 else
 {
		$letter="";
 }
 
 //########## =================== ################ 
 
 //Calculate total
 $tmp = $db->params; //Save params for second query
 $db->open("SELECT count(*) as cnt FROM songlist, categorylist $where ");
 $row = $db->row();
 $cnt = $row["cnt"];
 
 //Now grab a section of that
 $db->params = $tmp; //Restore params
 $db->open("SELECT songlist.* , categorylist.* FROM songlist, categorylist $where GROUP BY songid ORDER BY artist ASC, trackno ASC", $limit, $start);

 $first = $start+1;
 $last  = min($cnt,$start+$limit);
 $rc    = $start;
 
 $prevlnk = "";
 $nextlnk = "";
 if($cnt>0)
 {
 
 if(!isset($search))
	 { $search=""; }
  $searchstr = urlencode($search);
  $prev = max(0,$start-$limit);
  if($start>0)
    $prevlnk = "<a href='?start=$prev&limit=$limit&letter=$letter&search=$searchstr'><< Vorige</a>";
   
  $tmp = ($start+$limit);
  if($tmp<$cnt) 
    $nextlnk = "<a href='?start=$tmp&limit=$limit&letter=$letter&search=$searchstr'>Volgende >></a>";
 }
    
function PutSongRow($song) 
{
 global $rc, $start, $darkrow, $lightrow;
 
 $rc++;
 $bgcolor = $darkrow;
 if(($rc % 2)==0) $bgcolor = $lightrow;

 
 PrepareSong($song);
?> 
  <tr bgcolor="<? echo $bgcolor; ?>"> 
    <td nowrap align="right" width="1%"><font face="Verdana" size="2" color="#000000"><? echo "$rc"; ?></font></td>
    <td nowrap><font face="Verdana" size="1" color="#000000">&nbsp;<b>
    <? echo $song["artist"];?> - 
    <? echo $song["album"];?> - Track: 
    <? echo $song["trackno"];?> -  
    <? echo $song["title"];?> 

    </font></td>
	
	<td nowrap width="1%"> 
      <p align="center"><font face="Verdana" size="1" color="#003366"><a href="<? echo $song["request"]; ?>"><img
    src="images/request.gif" class="rond" alt="Request this song now!" border="0"></a></font> 
    </td>
    <td nowrap> 
      <p align="right"><font face="Verdana" size="1" color="#000000"><? echo $song["mmss"]; ?></font>
    </td>
  </tr>
<?
}//PutSongRow

/* ## ===================================================================== ## */
?>
<center>
<? require("search_albums.php"); ?>
<head>
<title><? echo $station; ?></title>
<? require("style.css"); ?>
<script language="JavaScript1.2"><? require("songinfo.js"); ?></script>
<script language='JavaScript1.2' src='http://www.audiorealm.com/player/player.js.html?srefID=1&subscription=no'></script>
<? require("req/request.java.php"); ?>
<script language="JavaScript1.2">
function PictureFail(picname) {
    if (document.images)
	 {
        document.images[picname].width   = 1;
		document.images[picname].height  = 1;
	 }
 }
</script>
</head>
<font face="Verdana" size="6" color="Blue"><b>The Jukebox Internetradio</b></a></font><font face="Verdana" size="2" color="#000000"><br><br>

<table border="0" width="80%" cellspacing="0" cellpadding="4">
  <tr bgcolor="#3399FF"> 
    <td colspan="8" nowrap align="left"> 
      <b><font face="Verdana" size="2" color="#FFFFFF">Maak je keuze:</font></b>
    </td>
  </tr>	
<? 
  while($song = $db->row())
   PutSongRow($song); 
?>
  
  <tr bgcolor="#E0E0E0"> 
    <td colspan="8" nowrap align="center">
        <b><font face="Verdana" size="2" color="#000000"></b>
	<? echo "$prevlnk"; ?>
 &nbsp; <font face="Verdana" size="2" color="#000000">( Je bekijkt <? echo "$first tot $last van $cnt resultaten"; ?> ) &nbsp; 	 
	<? echo "$nextlnk"; ?></td>
  </tr>	
  
</table>

<br>


<?php include("rond.php"); ?>  


<? require("footer.php"); ?>


Dwarrel....
Gebruikersavatar
Wout
Beheerder
Berichten: 3522
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: 2019.3
Database: MariaDB
Windows: 11
Locatie: West-Brabant
Contacteer:

Re: Sorteren op tracknummer

Ongelezen bericht door Wout »

Goed dat je je code heb bij geplaatst. Zag waar het bij mijn fout ging.

Code: Selecteer alles

<? echo $song["trackno"];?> -

Code: Selecteer alles

<?php if($song["trackno"] <10) $song["trackno"] = '0'.$song["trackno"].''; echo $song["trackno"];?> -
Afbeelding
Dwarrel

Re: Sorteren op tracknummer

Ongelezen bericht door Dwarrel »

Wout schreef:Goed dat je je code heb bij geplaatst. Zag waar het bij mijn fout ging.

Code: Selecteer alles

<? echo $song["trackno"];?> -

Code: Selecteer alles

<?php if($song["trackno"] <10) $song["trackno"] = '0'.$song["trackno"].''; echo $song["trackno"];?> -
Werkt helemaal perfect....

Bedankt Wout...

Dwarrel....
Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht