Hey çocuklar - Sorun gayrimenkul bilgileri saklamak için kullanılan bir kötü tasarlanmış veritabanından kaynaklanıyor. Ben bir hafta sonu seçin ve bu hafta sonu için açık evler görüntülemek için müvekkilim için bir şablon kurmak. Açık ev kere (ohtime1, ohtime2, ohtime3) AM veya PM bilmenin hiçbir yolu ile, TINYTEXT olarak depolanır. Ve "1:00-03:00" - "2:00 12:00" Ben ohtime1 BY veritabanı ve SİPARİŞ sorguladığınızda biz insanlar öğlen 02:00 ve 01:00-15:00 gibi ayırt ortak girişleri, ancak, tabii ki 01 koyar : 00 00:00 öncesi. Ben zorluk sıralama SQL kullanarak ve farklı php sıralama yöntemleri kullanarak yaşıyorum. Aşağıdaki gibi tüm açık ev bilgileri ile ilk listeleri dizi şey gibi ayarlanır:
$listings[0][displayaddress] = empire state building
$listings[0][baths] = too many to count
$listings[0][ohtime1] = 12:00 - 02:00
$listings[1][displayaddress] = madison square garden
$listings[1][baths] = 2
$listings[1][ohtime1] = 01:00 - 03:00
etc...
Kullandığımız smarty şablonları için işleme yanı sıra, Manhattan ve Brooklyn listeleri için daha sonra tekrar farklı günlerde ayırmak, ve ($ listeleme $ liste) Ben foreach $ ile listeleri ile yineleme. Bu 4 yeni diziler sonuçlanır. Benim teorisi, 24 saatlik zaman 9:00 önce tüm zamanlar dönüştürürseniz, o zaman işe farklı gün / ilçenin atamak sonra, bunları sıralamak oldu. İşte dönüştürme kodu:
$p = explode("-",$listing[ohtime1]); //01:00 - 03:00
$time1 = trim($p[0]); //01:00
$time2 = trim($p[1]); //03:00
$hour1 = substr($time1,0,2); //01
$hour2 = substr($time2,0,2); //03
$min1 = explode(":",$time1);
$min2 = explode(":",$time2);
$min1 = $min1[1]; //00
$min2 = $min2[1]; //00
//convert all times to 24 hour
if($hour1 < 9) $hour1 = $hour1+12; //13
if($hour2 < 9) $hour2 = $hour2+12; //15
$listing[ohtime1] = $hour1.":".$min1." - ".$hour2.":".$min2; //13:00 - 15:00
$listing[hour1] = $hour1;
$listing[hour2] = $hour2;
Dönüştürme zor değildi, ama bunları sıralamak için nasıl bir kayıp am. Mysql içine php yaptım 24hrs dönüşüm uygulamak için gibi gelişmiş SQL teorisi tecrübeli değilim. Ben de yeni diziler oluşturmak zaman ben bir sıralama özelliği uygulamak düşünüyordum ama ben bir kaybı tekrar duyuyorum. İşte yeni diziler içine ayırmak için kod:
foreach($openhouse_date_fields as $oh){ //3 possible open house dates
if(substr($listing[$oh], 0,10) == $date) { //if any of the listings's open houses match the first search date
if($listing[sect] == "Brooklyn") {
$listingsb[$listing[displayaddress]] = $listing;
}
else
$listingsm[$listing[displayaddress]] = $listing;
}
elseif(substr($listing[$oh], 0,10) == $date2) { //if any of the listings's open houses match the second search date
if($listing[sect] == "Brooklyn")
$listingsb2[$listing[displayaddress]] = $listing;
else
$listingsm2[$listing[displayaddress]] = $listing;
}
}
Ben yeterince bilgi umuyoruz. Okumak için zaman ayırdığınız için ve herhangi bir geri bildirim için teşekkür ederiz!