Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Въпрос за while

Featured Replies

Искам да питам нещо за този код сложил съм break; за да прекратя , но другите потребители които нямат пълни ресурси и на тях не им дава. Та къде е проблема да го оправя?.

Редактирано от valkosoft (преглед на промените)

Проблема е в if-a и по точно в OR-а в if. Премахни OR с AND и всичко ще ти е ок. В момента следиш за кой да е ресурс, а с AND ще следиш за всички едновременно.

  • Автор

ето но пак не дава на тези на които складовете не са им пълни?

Редактирано от valkosoft (преглед на промените)

if($all_user_gold >= $maxres && $all_user_iron >= $maxres && $all_user_wood >= $maxres && $all_user_food >= $maxres) { break; } Това е отвратително ... много лош, ама МНОГОООООООООООООООООООООООООО лош стил!

Използвал си следната структура:

while {
 while {
  code...
 }
}

и не си съобразил, че в двата цикъла използваш една и съща променлива $getusermats, да не говорим, че по време на изпълнението на основния while ти изпълняваш отново заявката към MYSQL, което позиционира pointer-а в началото на масива със записите и основния WHILE винаги ти обработва само първия запис в масива.

(за цялата идея тука не съм 100% сигурен, но мисля, че така стоят нещата)

Другото, което ме озадачава е, че правиш проверка дали потребителите имат ресурси да строят някаква сграда, но защо правиш проверка за всички потребители не е ясно. Защо не филтрираш заявките по потребителско име и да изтегляш записи само за съответния потребител. Така ще премахнеш while и ще ти се опрости структурата на кода, както и цялото му изпълнение може и да се получи :baby:

$counter не знам каква роля ти играе, но за 1 изпълнение на "основния" while тази променлива ще се промени 1 път за него и толкова пъти, колкото са ти потребителите, за дъщерния while, което прави $counter абсолютно излишна променлива, тъй като тя няма да ти носи достоверна информация.

  • Автор

if($all_user_gold >= $maxres && $all_user_iron >= $maxres && $all_user_wood >= $maxres && $all_user_food >= $maxres) {

break;

}

Това е отвратително ...

много лош, ама МНОГОООООООООООООООООООООООООО лош стил!

Като ти е отвратително не го чети , кой те кара

Като ти е отвратително не го чети , кой те кара

Аз ти давам приятелски съвет, ти се държиш като магаре!

  • 2 седмици по-късно...
  • Автор

Написал съм един код който трябва да разпределя колко опит (експириънс) трябва да има един клан . Примерно клана има 3 играча , които общият им опит е 40000 и аз го разделям на 3 (новият опит на клана се запаметява в полето за опит на клана) , но се появи един проблем : към опитът на играчи от един клан прибавя и опита на играчите от другите кланове и става проблем . Ето кода ако може да ми кажете къде е проблема:

$get_all_user_of_clan_exp = mysql_query("SELECT * FROM users WHERE your_clan='$row[clan_name]'");
	while($get_exp = mysql_fetch_array($get_all_user_of_clan_exp)) {
	$all_user_exp += $get_exp['experience'];
	}
	$all_user_exp1 = $all_user_exp / $row['members'];
	$update_new_clan_exp = mysql_query("UPDATE clans SET clan_points='$all_user_exp1'");
	$get_new_exp = mysql_query("SELECT clan_points FROM clans WHERE clan_name='$row[clan_name]'");
	$rowss = mysql_fetch_array($get_new_exp);
	$new_exp = $rowss['clan_points'];
echo "<tr><td>".$counter."</td><td><a href='view_clan.php?id=$id'>".$row['clan_name']."</a></td><td>".$row['members']."</td><td>".$new_exp."</td></tr>";

Редактирано от valkosoft (преглед на промените)

valkosoft, прочети малко за Domain Driven Development (DDD). Всичко което правиш е грешно, начина по който мислиш е грешен!

  • Автор

Заяждаш ли се ле човек ??? Това не мога да разбера какво искаш >>>> Аз какво питам ти какво казваш??

  • Администратор

Заяждаш ли се ле човек ??? Това не мога да разбера какво искаш >>>> Аз какво питам ти какво казваш??

Всъщност човека е прав, макар че така представен съвета едва ли би бил последван от някого. Не е заяждане.

Ако наистина почетеш малко, било то за DDD, било просто за обектно-ориентиран дизайн, то:

* Ще структурираш кода си по начин, който е по-лесен и за писане, и за четене, и за разбиране, и за дебъгване

* Ще ти е по-лесно да го поддържаш и доразвиваш (което в момента може да не ти прави впечатление, но с времето ще ти става все по-трудно по текущия начин)

* Ще научиш много неща

* Ще ти е по-лесно да получиш помощ по форумите

Ако искаш да се занимаваш професионално с програмиране, това е задължително и рано или късно ще минеш по този път.

Но дори да не е това, ще ти е от полза. Често във въпроса се крие половината отговор. Преструктурирайки кода, преструктурираш и въпроси те си, и някои отговори могат да дойдат от самосебе си.

Успех!

Колкото до конкретния ти проблем, UPDATE заявката ти няма WHERE клауза (вероятно трябва да е същата като при select-а)

  • Автор

Да сложих WHERE клауза , но забелязах че при всеки рефреш на страницата резултатите се променят.

Да сложих WHERE клауза , но забелязах че при всеки рефреш на страницата резултатите се променят.

valksoft, ето ти пример за лош дизайн.

Пърче софтуер, което не можеш да тестваш стандартизирано, и до толкова пълно със случайна комплексност, че дори ти не знаеш какво прави.

Преди да хакаш като хамал, отдели време и прочети малко какво са пислаи хора много по умни от теб по темата - "Дизайн на софтуер".

  • Автор

Аз ли не знам какво прави кода :biggrin::whist::yanim: :yanim: Затворете темата моля!!!

Редактирано от valkosoft (преглед на промените)

Аз ли не знам какво прави кода :);):yanim: :yanim: Затворете темата моля!!!

Ако знаеше какво става, нямаше да пишеш тук.

Но ти си пееш твоята песен, вече няма да се опитвам да ти помогна. Прави си нещата както си знаеш/

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.