Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.

  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
PHP

Pomoc w optymalizacji

php

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
2 odpowiedzi w tym temacie

#1 góruś

    Profesjonalista

  • Użytkownik

Reputacja: 136
Zaawansowany

  • Postów:164
  • GG:
  • Imię:Damian
  • Lokalizacja:Grójec
Offline

Napisano 03.01.2012 15:57

Witam, posiadam własny sklep do CS'a którego supportuje już od około roku, w tym czasię dodawałem sporo uprawnień, dodatków, zmieniałem grafikę. Ostatnio wziąłem się za optymalizację kodu lecz w tym momencie potrzebuję pomocy z zewnątrz. Mam przykładowo parę zapytań i zmiennych:


$dodaj = mysql_fetch_assoc(mysql_query("SELECT id FROM amx_amxadmins WHERE username='$nick'"));
$flagijakiema1 = mysql_fetch_assoc(mysql_query("SELECT custom_flags FROM amx_admins_servers WHERE admin_id='".$dodaj['id']."' AND server_id='$serwer'"));
$flagijakiema = $flagijakiema1['custom_flags'];

if($flagijakiema == 'bcdefijmnu'){
$noweflagi='bcdefijmntu';
}
if($flagijakiema == 'bcdefijmntu'){
$noweflagi='bcdefijmntu';
}
if($flagijakiema == 'bcdefijmnsu'){
$noweflagi='bcdefijmnstu';
}
if($flagijakiema == 'bcdefijmnstu'){
$noweflagi='bcdefijmnstu';
}
if($flagijakiema == 'b'){
$noweflagi='bit';
}
if($flagijakiema == 'bit'){
$noweflagi='bit';
}
if($flagijakiema == 'bist'){
$noweflagi='bist';
}
if($flagijakiema == 's'){
$noweflagi='bist';
}
if($flagijakiema == 'z'){
$noweflagi='bit';
}
A więc po kolei, zmienna $dodaj łapię mi id admina z amxbansa, $flagijakiema sprawdza mi aktualne flagi, a dalej kod który chciał bym zoptymalizować. Na tym przykładzie pokazałem, że użytkownik kupuję vipa o flagach bit. Więcej nie potrzebuję sprawdzać, gdyż osoby z większą ilością flag usługi dostają za darmo. Wpadłem więc na taki pomysł, że nawet nie musiał bym tego wszystkiego sprawdzić, lecz moje umiejętności kończą się na pomyśle:


$flagijakiema = explode("\n", $flagijakiema);

Niby nie dużo, ale nie wiem czy zastosować jakąś pętlę aby początkowo sprawdzić aktualne + kupione flagi i w razie istnienia połączenia ich. Następnie przydało by się również segregowanie według alfabetu, żeby zachować ład w amxbans. Był bym wdzięczny jeśli któs by mógł mi w jakikolwiek sposób pomóc.

Użytkownik góruś edytował ten post 03.01.2012 15:58

  • +
  • -
  • 0

Piszesz na gg w sprawie pomocy? Z góry ignore, pozdrawiam.

CS 1.6 Download
Serwery CS
Cs nonsteam download


#2 Leihto

    Wszechobecny

  • Użytkownik

Reputacja: 150
Profesjonalista

  • Postów:452
  • Lokalizacja:Rabka
Offline

Napisano 03.01.2012 20:56

Jakoś niebardzo Cię rozumiem..
W ogóle nie wiem czy to będzie działać..
Lepiej będzie użyć switcha ;)

<?
$dodaj = mysql_fetch_assoc(mysql_query("SELECT id FROM amx_amxadmins WHERE username='$nick'"));
$flagijakiema1 = mysql_fetch_assoc(mysql_query("SELECT custom_flags FROM amx_admins_servers WHERE admin_id='".$dodaj['id']."' AND server_id='$serwer'"));
switch($flagijakiema1['custom_flags'])
{
case 'bcdefijmnu': $noweflagi='bcdefijmntu'; break;
case 'bcdefijmntu': $noweflagi='bcdefijmntu'; break;
case 'bcdefijmnsu': $noweflagi='bcdefijmnstu'; break;
case 'bcdefijmnstu': $noweflagi='bcdefijmnstu'; break;
case 'b': $noweflagi='bit'; break;
case 'bit': $noweflagi='bit'; break;
case 'bist': $noweflagi='bist'; break;
case 's': $noweflagi='bist'; break;
case 'z': $noweflagi='bit'; break;
}
// Tu dalej kod

Z tego co mi wiadomo to funkcja explode dzieli tekst na części względem jakiegoś znaku.. Więc to co Ty tutaj pokazałeś będzie dzieliło kod 'po enterze'.

Ale czy ty w ogóle chcesz pobrać flagi i później je porównać z tymi które już ma czy co? Bo nie rozumiem za bardzo tego co napisałeś..
  • +
  • -
  • 1
Portek: Za 20zł, to ja nawet notatnika nie otworze..

Nowe portfolio. Ciekawe artykuły, ciekawe przykłady: WojtusDEV.pl

#3 góruś

    Profesjonalista

  • Autor tematu
  • Użytkownik

Reputacja: 136
Zaawansowany

  • Postów:164
  • GG:
  • Imię:Damian
  • Lokalizacja:Grójec
Offline

Napisano 06.01.2012 15:03

a więc tak, oczywiście samo explode by mi nic nie dało, chyba, że bym użył z implode, tylko po co skoro wystarczy mi samo str_split()
wydukałem taki kod:

<?php
class laczenie {
var $name;
function laczenie($name)
{
$this->name = $name;
}

function segregacja($a, $B)
{
$al = strtolower($a->name);
$bl = strtolower($b->name);
if ($al == $bl) {
return 0;
}
return ($al > $bl) ? +1 : -1;
}
}
$cos = "abcdpk ";
$cos = trim($cos);
$cos1 = "poiqwe";
$cos1 = trim($cos1);
$cos2 = ($cos.$cos1);
$licz = strlen($cos2);
$a = str_split($cos2);
uasort($a, array("laczenie", "segregacja"));
while (list($key, $value) = each($a)) {
echo "$key: $value\n";
}
?>

co daje mi w odpowiedzi: 8: i 7: o 9: q 10: w 11: e 6: p 5: k 1: b 2: c 3: d 4: p 0: a
mogło by oczywiście być same litery, tylko w tym wypadku by pokazało:ioqwepkbcdpa, bo tak jest po kolei.
Jak widać w 1 wyniku, wszystko sortuje dobrze, 0:a, 1:b... teraz problem, w jaki sposób mógł bym teraz to uszeregować i wrzucić do 1 zmiennej?

do zamknięcia, poradziłem sobię

Użytkownik góruś edytował ten post 04.01.2012 18:54

  • +
  • -
  • 0

Piszesz na gg w sprawie pomocy? Z góry ignore, pozdrawiam.

CS 1.6 Download
Serwery CS
Cs nonsteam download






Również z jednym lub większą ilością słów kluczowych: php

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych