- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
$a_year[2005]="2005";
$a_year[2006]="2006";
$a_year[2007]="2007";
$a_year[2008]="2008";
$a_year[2009]="2009";
$a_year[2010]="2010";
$a_year[2011]="2011";
$a_year[2012]="2012";
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+174
$a_year[2005]="2005";
$a_year[2006]="2006";
$a_year[2007]="2007";
$a_year[2008]="2008";
$a_year[2009]="2009";
$a_year[2010]="2010";
$a_year[2011]="2011";
$a_year[2012]="2012";
больше 2012 года не вписали... xd
+158
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
+160
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();
}
}
В прицнипе пофиг что оно делает. Но смотреть без слез, имхо нельзя :)
+144
if( DateDiff > 1000*60*60*24*122 ) {
$("#mfilter_err").text("Выбран интервал времени больше 4 месяцев");
return false;
}
Странное у человека представление о длине 4 месяцев
+159
//функция конвертации времени в таймстамп, добавлено 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() не устроило, не понятно.
+70
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. Но бывает, придумывается какой-то нетиповой фильтр, и его параметры приходится хардкодить в этой мапке. Короче, мне понравилась идея с мапкой, ведь даже если параметры захардкодены, то они всё равно пихаются в мапку. И читаемость для таких случаев навысоте.
+162
<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, кеке) хотел бы удавить аффтара не меньше, чем я. Сайт в продакшне с марта.
+97
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.
Вот так находят "минимальное натуральное число представимое двумя различными способами в виде суммы кубов двух натуральных чисел"
+62
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" было новым объектом (или нельзя? О_о хотя ясно, что это бесмыслено), тогда работать не будит %) ы
+163
<?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)"