Rovch Posted January 30, 2012 Share Posted January 30, 2012 Hey guys, I've trying to edit some elses array, but no luck. Right now it shows current and next month. Needs to show next and one after the next. I am pretty new to PHP, and I hope I can get some help here. Main code: <?php $oneMonth = VarsItem::getVarsValue('oneMonthTravel'); $oneMonth == ($oneMonth == '') ? 1 : $oneMonth; $monthAll = TravelItem::getAllMount(array('limit' => 2, 'start' => $oneMonth)); if (sizeof($monthAll) > 0) { $i = 0; ?> <table border="0" cellspacing="0" cellpadding="0" width="520" align="center"> <tr valign="top"> <td width="100%"><img src="/image/0.gif" width="1" height="15" border="0" /></td> </tr> </table> <a name="inquirer"></a> <table border="0" cellspacing="0" cellpadding="0" width="520" align="center"> <tr valign="top"> <td align="center" colspan="2"><img src="/image/where.gif" width="505" height="16" border="0" /></td> </tr> <tr valign="top"> <? foreach ($monthAll as $onemonth) { $i++; ?> <td width="260"> <table border="0" cellspacing="0" cellpadding="0" width="100%" class="latestmain"> <tr><td colspan="2"><h3><%= strtoupper(monthAll($onemonth["month_id"],'namer')) %></h3></td></tr> <? $rowTravel = TravelItem::SelectAll(array('month_id' => $onemonth["month_id"], 'is_show' => 1)); foreach ($rowTravel as $onerowTravel) { $style ='style="padding-left:5px;"'; $partArray = checkEmptyPartitions($part, CountryItem::getCountryWorkName($onerowTravel['country_id'])); $hrefTravel = CountryItem::getCountryWorkName($onerowTravel['country_id'])."/".(($partArray["$part"] == 1) ? $part.'/' : ""); ?> <tr valign="top"> <td><img src="/image/bullet-a.gif" width="9" height="9" border="0" style="margin-top:2px;" /></td> <td width="100%" <%= $style %>><b><span id="orange"><%= CountryItem::getCountryName($onerowTravel['country_id']) %>:</span></b> <small><%= $onerowTravel['title'] %> <a href="<%= $hrefTravel %>">details...</a></small></td> </tr> <? } ?> </table> </td> <? } ?> </tr> <tr valign="top"> <td colspan="<%= $i+1 %>"> <table border="0" cellspacing="0" cellpadding="0" width="100%" class="latestmain"> <tr><td><a href="travel.htm">where else to go</a></td></tr> </table> </td> </tr> </table> <? } ?> And TravelItem class: <?php class TravelItem extends Storable { function TravelItem($row = array()) { Storage::Init(TravelItem::def(), $this->data); $this->Storable($row); } function &def() { return array( 'fields' => array( 'travel_id' => 0, 'month_id' => 0, 'country_id' => 0, 'title' => '', 'ord' => '', 'is_show' => 1, ), 'key' => 'travel_id', 'auto_key' => true, 'auto_update' => array('is_show' => 0), 'table' => 'travel'); } function &Load($id) { if (!($row =& Storage::Load(TravelItem::def(), $id))) return false; return new TravelItem($row); } function Store() { $actionMail = ($this->data['travel_id'] > 0) ? 'edit' : 'add'; $templateMail = 'travel'; if (Storage::Store(TravelItem::def(), $this->data)) { changeSite($actionMail,$templateMail,$this->data['travel_id']); return true; } else return false; } function Update(&$rows) { $actionMail = 'update'; $templateMail = 'travel'; changeSite($actionMail,$templateMail,$rows); return Storage::Update(TravelItem::def(), $rows); } function Delete(&$ids) { $actionMail = 'delete'; $templateMail = 'travel'; changeSite($actionMail,$templateMail,$ids); return Storage::Delete(TravelItem::def(), $ids); } function getWhere(&$parms) { $where = ""; if (isset($parms['month_id'])) $where = "month_id='".$parms['month_id']."'"; if (isset($parms['country_id'])) $where = (empty($where) ? "" : $where." and ")."country_id='".$parms['country_id']."'"; if (isset($parms['is_show'])) $where = (empty($where) ? "" : $where." and ")."is_show='".$parms['is_show']."'"; if (isset($parms['searchFilter'])) $where = (empty($where) ? "" : $where." and ")."title LIKE '%".$parms['searchFilter']."%'"; $where = empty($where) ? "" : "WHERE ".$where; return $where; } function getOrder(&$parms) { $field = "month_id,ord*100,country_id"; if (isset($parms['sort_field']) and !empty($parms['sort_field'])) { $field = $parms['sort_field']; } return "ORDER BY $field"; } function SelectAll($parms = array()) { $db =& Storage::DBI(); return $db->query("SELECT * FROM travel ".TravelItem::getWhere($parms)." ".TravelItem::getOrder($parms), DBI::ExtractDBParms($parms, array('key' => 'travel_id'))); } function CountAll($parms = array()) { $db =& Storage::DBI(); return $db->queryValue("SELECT COUNT(*) FROM travel ".TravelItem::getWhere($parms)); } function getAllMount($parms = array()) { $limit = (isset($parms['limit'])) ? 'LIMIT '.$parms['limit'] : ''; $where = (isset($parms['start'])) ? ' and month_id >= '.$parms['start'] : ''; if ($parms['start'] == 12) $where .= ' or month_id = 1'; // for december $db =& Storage::DBI(); return $db->query("SELECT DISTINCT month_id from travel WHERE is_show=1 ".$where." ORDER BY 1 ".($parms['start'] == 12 ? 'DESC' : '')." ".$limit); } function getTitle($travel_id) { $db =& Storage::DBI(); list($country_id,$month_id) = $db->queryList("SELECT country_id,month_id FROM travel WHERE travel_id =?",array("",""),Array($travel_id)); return ($month_id > 0 ? monthAll($month_id,'namer') : "")." : ".CountryItem::getCountryName($country_id); } function getUpdateList($travel_id) { $db =& Storage::DBI(); return $db->queryList("SELECT is_show,ord,country_id,month_id FROM travel WHERE travel_id =?",array('','','',''),Array($travel_id)); } } ?> I've tried adding +1 to $oneMonth and it did not work. I've also tried skipping first month and increasing array limit to three, but then it only outputs one month instead of two. And neither worked properly. Thanks in advance. Quote Link to comment https://forums.phpfreaks.com/topic/256035-need-help-with-array-logic/ Share on other sites More sharing options...
Rovch Posted February 1, 2012 Author Share Posted February 1, 2012 Any help? I've been trying to fix this array for a while. Quote Link to comment https://forums.phpfreaks.com/topic/256035-need-help-with-array-logic/#findComment-1313165 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.