napisałem taki oto prosty kod pobierający dane z bazy:
<?php $db = JFactory::getDBO(); $query = $db->getQuery(true); $query = "SELECT #__bl_players.id, #__bl_players.first_name, #__bl_players.last_name, #__bl_extra_values.fvalue, #__bl_photos.ph_filename FROM #__bl_players INNER JOIN #__bl_assign_photos ON #__bl_players.id=#__bl_assign_photos.cat_id INNER JOIN #__bl_photos ON #__bl_assign_photos.photo_id=#__bl_photos.id INNER JOIN #__bl_extra_values ON #__bl_players.id = #__bl_extra_values.uid WHERE #__bl_players.team_id = ".($params->get('team_id'))." AND #__bl_extra_values.f_id = ".($params->get('squad_number'))." AND #__bl_players.position_id = ".($params->get('pos_gk'))." ORDER BY #__bl_extra_values.fvalue ASC"; $db->setQuery($query); $players_gk = $db->loadObjectList(); ?> <div class="mod_js_squad"> <?php foreach($players_gk as $row): $cItemId = $params->get('customitemid'); $Itemid = JRequest::getInt('Itemid'); if(!$cItemId){ $cItemId = $Itemid; } $url = JRoute::_('index.php?option=com_joomsport&task=player&id='.$row->id.'&Itemid='.$cItemId); ?> <div class="mod_js_squad_player"> <!-- <?php echo '<img style="border:1px solid #aaa;height:35px" src="media/bearleague/'.$row->ph_filename.'" title="'.$row->last_name.'" />' ?> --> </div> <?php endforeach ?> </div>
$params są podawane z formularza.
I teraz mały problem. Zmienna $fvalue przechowuje numer zawodnika. Niestety w bazie jest on zdefiniowany jako pole tekstowe (nie można tego zmienić gdyż jest to komponent firmy trzeciej do którego napisałem moduł). Sortowanie wyników wygląda więc następująco (1,12,13,14,2,21,23,3,34,35... itd..). Jak to zmienić? Całość działa bez zarzutu poza tym sortowaniem.
Za wszelkie cenne uwagi z góry dziękuję.
Pozdrawiam
Tomek