-
+158
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
function getAvailableFlights($source,$dest){
$connection = initDB();
$query2;
$query2 = "SELECT * FROM Sectors WHERE Sector='".$source."'";
$result2 = mysql_query($query2);
//or die ("Query Failed ".mysql_error());
$row2 = mysql_fetch_array($result2);
$SourceSID = $row2['SID'];
$query3 = "SELECT * FROM Sectors WHERE Sector='".$dest."'";
$result3 = mysql_query($query3);
// or die ("Query Failed ".mysql_error());
$row3 = mysql_fetch_array($result3);
$destSID= $row3['SID'];
//Get available flights
$query3 = "SELECT * FROM Flights WHERE SourceSID='".$SourceSID."' AND DestSID='".$destSID."'";
$result3 = mysql_query($query3);
// or die ("Query Failed ".mysql_error());
$flightsArray;
$flightsID=1;
while($row = mysql_fetch_array($result3)){
$fName= $row['FName'];
$flightsArray[$flightsID] = $fName;
$flightsID = $flightsID +1;
}
closeDB($connection);
return $flightsArray;
}
В NetBeans есть несколько примеров с проектами PHP. Один из них AirAlliance. весь код оттуда можно сюда запостить.
ну вместо той херни что написана выше можно использовать один запрос MySql
'select distinct f.FName
from Flights f
left join Sectors s on f.SourceSID=s.SID
left join Sectors d on f.DestSID=d.SID
where s.SID='.(int)$source.' or d.SID='.(int)$dest
duburlan,
21 Октября 2010
-
+160
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
class XXX
{
function _item()
{
return $this->val = substr(__FUNCTION__,1);
}
function _lister()
{
return $this->val = substr(__FUNCTION__,1);
}
function item()
{
return ($this->val === __FUNCTION__);
}
function lister()
{
return ($this->val === __FUNCTION__);
}
function __construct()
{
$this->_lister();
}
}
В прицнипе пофиг что оно делает. Но смотреть без слез, имхо нельзя :)
grelkin,
21 Октября 2010
-
+144
- 1
- 2
- 3
- 4
if( DateDiff > 1000*60*60*24*122 ) {
$("#mfilter_err").text("Выбран интервал времени больше 4 месяцев");
return false;
}
Странное у человека представление о длине 4 месяцев
getrix,
21 Октября 2010
-
+159
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
//функция конвертации времени в таймстамп, добавлено 08.07.2010
function convertDate($date){
$dateArr = explode(".", $date);
$date = mktime(0,0,0,$dateArr[1],$dateArr[0],$dateArr[2]);
return $date;
// 21.10.2010: а чем strtotime не устраивает?
}
И чем strtotime() не устроило, не понятно.
getrix,
21 Октября 2010
-
+70
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
Map<Integer, ArrayList<?>> // filterId : filterParams
{
//
// Фильтр занятости квартир (не вписывается в API, поэтому здесь заведены отдельные методы)
//
// хранит: showReserved, DateFrom, DateTo
private ArrayList<?> reservedFilterParams
public void onDateFilterChanged(Date dateFrom, Date dateTo, boolean showReserved)
{
this.put(QuickFilters.FILTER_RESERVED_ID, reservedFilterParams)
reservedFilterParams = ArrayUtils.getOrCreateArrayListWithElements(
this, QuickFilters.FILTER_RESERVED_ID, new Boolean(showReserved), dateFrom, dateTo )
if (dateFrom == null && dateTo == null)
{
reservedFilterParams.set(0,new Boolean(true))
this.remove(QuickFilters.FILTER_RESERVED_ID)
}
}
public boolean doShowReserved()
{
return reservedFilterParams ? reservedFilterParams.get(0).booleanValue() : true
}
public Date getDateFrom()
{
return reservedFilterParams?.get(1)
}
public Date getDateTo()
{
return reservedFilterParams?.get(2)
}
}
Язык Groovy, стиль - моя переходная форма от Java. Это я сам написал. Вообще мне даже нравится. Есть фильтры для поиска. У каждого фильтра есть только ему ведомые параметры. Приведенный код - это мапка для хранения того, какие пользователь выбрал фильтры и что в них установил.
Есть API который я делаю, состоящий из типовых фильтров. Этот API автоматически юзает мапку через get/put. Но бывает, придумывается какой-то нетиповой фильтр, и его параметры приходится хардкодить в этой мапке. Короче, мне понравилась идея с мапкой, ведь даже если параметры захардкодены, то они всё равно пихаются в мапку. И читаемость для таких случаев навысоте.
Bugdog,
20 Октября 2010
-
+162
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
<div style="position:relative">
Всего товаров: 1<br />
На сумму: 5 750,00
</div>
<script>$("#korzina").load("/korzina.php",{'fsdfsad':true});</script>
Сей кодъ подгружается аяксом из скрипта /korzina.php в div#korzina. Естественно, тут же выполняется строчка номер 6, и онъ ещё раз подгружается. И ещё раз. И ещё раз...
Долго думал, почему так тормозит браузер и почему по vnstat'у 64 кбит/с вверх и 24 вниз при простом просмотре страницы. Думаю, админ сервера (там стоит Apache, кеке) хотел бы удавить аффтара не меньше, чем я. Сайт в продакшне с марта.
telnet,
20 Октября 2010
-
+97
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
Program zadacha;
var
i,chislo,x,y,m,n:integer;
begin
while i<1 do begin
for x:=0 to chislo do begin
for y:=0 to chislo do begin
for m:=0 to chislo do begin
for n:=0 to chislo do begin
if (chislo=x*x*x+y*y*y) and (chislo=m*m*m+n*n*n) and (x<>m) and (x<>y) and (y<>m) and (y<>n) then i:=1 else chislo:=chislo+1;
end;
end;
end;
end;
end;
Writeln(chislo);
end.
Вот так находят "минимальное натуральное число представимое двумя различными способами в виде суммы кубов двух натуральных чисел"
kolhoz,
20 Октября 2010
-
+62
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
public int doEndTag() throws JspException {
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
try {
String fieldValue = fdata;
String boolVal="false";
StringBuffer field_Value = new StringBuffer();
String indexString="";
int spaceIndex;
int slen = fieldValue.length();
int starti=0;
int endi= fsize;
if (fdata==null) {
boolVal="true";
field_Value.append("");
}
if (fsize > slen || truncateDataSize > fdata.length() ) {
boolVal="true";
field_Value.append(fdata);
}
if (truncateDataSize!=0 && fdata.length() > truncateDataSize ) {
fieldValue="";
fieldValue = fdata.substring(starti,truncateDataSize);
slen = fieldValue.length();
}
while(boolVal=="false") {
indexString= fieldValue.substring(starti,endi);
spaceIndex = indexString.lastIndexOf(" ");
if (spaceIndex == -1) {
int initialLength = field_Value.length();
field_Value.append(fieldValue.substring(starti,endi));
// field_Value.append("<br>");
// MT-2238 start
int firstIndex = indexString.indexOf("<");
int lastIndex = indexString.indexOf(">");
if(lastIndex<firstIndex) {
lastIndex = indexString.indexOf(">",(lastIndex+1));
}
if(firstIndex >= 0 && lastIndex <= indexString.length() && lastIndex>firstIndex) {
if(!(indexString.substring(firstIndex+1,lastIndex).equalsIgnoreCase("br"))) {
if(lastIndex<=initialLength && indexString.endsWith(">")) {
field_Value.append("<br>");
}else {
field_Value.insert((initialLength+(lastIndex+1)),"<br>");
}
}
}
//in case no HTML tags
if(!checkInTag(false, field_Value.toString())
&& firstIndex==-1 && lastIndex==-1
) {
// add BR tag
field_Value.append("<br>");
}
// MT-2238 end
} else {
field_Value.append(fieldValue.substring(starti,starti + spaceIndex));
endi = starti + spaceIndex + 1;
if(forceWrap == 1){
field_Value.append("<br>");
} else{
field_Value.append(" ");
}
}
starti = endi;
if((endi + fsize) > slen) {
endi = slen - endi;
field_Value.append(fieldValue.substring(starti,starti + endi));
boolVal="true";
} else {
endi = endi + fsize;
}
}
if (truncateDataSize!=0 && fdata.length() > truncateDataSize && singleLine==false) {
field_Value.append("...");
}
if (singleLine== true ) {
if (fsize<fdata.length())
{
field_Value.delete(0,field_Value.length());
field_Value.append(fieldValue.substring(0,fsize));
field_Value.append("...");
}
}
pageContext.getOut().write(field_Value.toString());
} catch (Exception e) {
log.error(" Exception in image tag ",e);
}
return EVAL_PAGE;
}
Найдено в кастомном теге нашева прилаженийа. Писано паходу интусами %) ы
Вся соль в строке (#29):
while(boolVal=="false")
И что самое интересное.. Оно работает!! :DDD ы
А работает как я выяснил изза 'smart' части java %)) так как boolVal инитиализируется в этом же методе, то boolVal = "false" и "false" это 1 и тот же объект %) паэтаму и проходит сравнение. Т.е. java подменяет "false" во всех местах на адин и тот же объект %) но если бы "false" пришёл снаружи, то всё.. это другой объект %)
ппц, я когда увидел долго бился головой ап стенку %)) в папытках понять, почему оно работает %))
ксати я точно не уверен, но помойму если в настройках компилятора покапаться, то думаю можно сделать так чтобы каждой объявление "false" было новым объектом (или нельзя? О_о хотя ясно, что это бесмыслено), тогда работать не будит %) ы
Pepper-X,
20 Октября 2010
-
+163
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
<?php
// ...
////////////////
$_engines = unserialize(SENGINES);
if (0 == count($loading)) return -3;
$select=-1;
$delta=0;
$me=count($_engines);
$ms=count($args);
if (count($loading))
foreach ($loading as $k=>$v)
{
if (!isset($v['all'])) continue;
if (0==$v['all']) continue;
$tmp=0;
switch(1)
{
case $ms > 0:
foreach ($args as $engine)
{
if (isset($v[$engine]))
$tmp += (float) $v[$engine]/(float) $v['all'];
}
$tmp=$tmp/$ms;
break;
case $me > 0:
foreach ($_engines as $engine)
{
if (isset($v[$engine]))
$tmp += (float) $v[$engine]/(float) $v['all'];
}
$tmp=$tmp/$me;
break;
}
if ($tmp > $delta) {$delta=$tmp;$select=$k;}
}
if (-1 == $select) return false;
////////////////
// ...
Автор этого убеждает, что тут где-то производится сортировка.
Кстати, это, #4071 и #4215 кодил один и тот же автор. Поэтому тут можно наблюдать десериализацию массива из константы, возвращение непонятных отрицательных статусов, очень информативное именование переменных, копипаст и самое классное — "if для лохов, я использую switch(1)"
user654321,
20 Октября 2010
-
−85
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
package {
import flash.utils.setInterval;
import flash.utils.clearInterval;
import flash.display.Sprite;
import flash.display.StageScaleMode;
import flash.display.StageAlign;
import pages.loadPage;
import pages.rokerPage;
[SWF(width='600', height='690', backgroundColor='#151515', frameRate='30')]
public class pokerLegalize extends Sprite {
public var uid:String;
public var page1:loadPage = new loadPage();
public var page2:rokerPage = new rokerPage();
private var loadInterval:uint;
private var flashVars:Object;
public function pokerLegalize()
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
addChild(page1);
loadInterval = setInterval(loadComplite, 100);
}
private function loadComplite():void
{
if(page1.getLoadStatus()) {
clearInterval(loadInterval);
flashVars = stage.loaderInfo.parameters as Object;
removeChild(page1);
addChild(page2);
pageResezer(2);
}
}
private function pageResezer(page:uint):void
{
if(page == 2) {
page2.wall.wall.wallArray = page1.getVars('wallArray');
page2.friendsWall.friendsWall.friendsFull = page1.getVars('friendsArray');
page2.friendsWall.friendsWall.createWall();
page2.friendsWall.resize();
page2.wall.wall.lengthXML = page1.getterBrick.getLenght();
page2.wall.wall.setBrokenMode(true, false, 1);
page2.wall.setFlashVars(flashVars);
page2.wall.addAllEventListeners();
page2.flashVars = flashVars;
}
}
}
}
По ТЗ, мне надо разобраться в этом коде... Внимание на функцию pageResezer... хотя интервал тоже не плох @_@
KirAmp,
20 Октября 2010