Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: Zmiana znaków, oraz optymalizacja
Forum PHP.pl > Forum > PHP
Ania-678
Witam.

Piszê dwa problemy w jednym temacie.

1 problem to taki ¿e w tek¶cie przesy³anym przez $_POST['msg'] chcê dokonaæ formatowania na zasadzie pogrubienia w * *

Wydaje sie proste - u¿yæ str_replace:

*tekst*tekst2
*[ b]tekst[ /b]*tekst2 (specjalnie da³am ze spacj± by widoczne by³o)
*tekst*tekst2

ALE... co w takim przypadku gdzie chce by zformatowany zosta³ tekst W ka¿dej PARZE gwiazdek (sic!) na zasadzie:

*tekst*tekst2*tekst3*
*[ b]tekst[ /b]*tekst2*[ b]tekst3[ /b]*
*tekst*tekst2*tekst3*

Ja osobi¶cie na my¶la³am nad jakim¶ tworzeniu "par" z gwiazdek (bo te siê NICZYM od siebie nie ró¿ni± i ró¿niæ siê nie mog±) i wtedy na ka¿dej parze dokonaæ formatowania... ale... JAK i czy to jest MO¯LIWE... blinksmiley.gif

2 problem to polegaj±cy na optymalizacji pewnego skryptu który pobiera z bazy "trochê" warto¶ci tak:

  1. <?php
  2. $mywep = $db -> Execute("SELECT * FROM equipment WHERE owner=".$player -> id." AND type='W' AND status='E'");
  3. $myarm = $db -> Execute("SELECT * FROM equipment WHERE owner=".$player -> id." AND type='A' AND status='E'");
  4. $myhelm = $db -> Execute("SELECT * FROM equipment WHERE owner=".$player -> id." AND type='H' AND status='E'");
  5. $mylegs = $db -> Execute("SELECT * FROM equipment WHERE owner=".$player -> id." AND type='L' AND status='E'");
  6. $ewep = $db -> Execute("SELECT * FROM equipment WHERE owner=".$arrdefender['id']." AND type='W' AND status='E'");
  7. $earm = $db -> Execute("SELECT * FROM equipment WHERE owner=".$arrdefender['id']." AND type='A' AND status='E'");
  8. $ehelm = $db -> Execute("SELECT * FROM equipment WHERE owner=".$arrdefender['id']." AND type='H' AND status='E'");
  9. $elegs = $db -> Execute("SELECT * FROM equipment WHERE owner=".$arrdefender['id']." AND type='L' AND status='E'");
  10. $myczar = $db -> Execute("SELECT * FROM czary WHERE gracz=".$player -> id." AND status='E' AND typ='B'");
  11. $eczar = $db -> Execute("SELECT * FROM czary WHERE gracz=".$arrdefender['id']." AND status='E' AND typ='B'");
  12. $myczaro = $db -> Execute("SELECT * FROM czary WHERE gracz=".$player -> id." AND status='E' AND typ='O'");
  13. $eczaro = $db -> Execute("SELECT * FROM czary WHERE gracz=".$arrdefender['id']." AND status='E' AND typ='O'");
  14. $mybow = $db -> Execute("SELECT * FROM equipment WHERE owner=".$player -> id." AND type='B' AND status='E'");
  15. $ebow = $db -> Execute("SELECT * FROM equipment WHERE owner=".$arrdefender['id']." AND type='B' AND status='E'");
  16. $myarrows = $db -> Execute("SELECT * FROM equipment WHERE owner=".$player -> id." AND type='R' AND status='E'");
  17. $earrows = $db -> Execute("SELECT * FROM equipment WHERE owner=".$arrdefender['id']." AND type='R' AND status='E'");
  18. $mystaff = $db -> Execute("SELECT * FROM equipment WHERE owner=".$player -> id." AND type='T' AND status='E'");
  19. $estaff = $db -> Execute("SELECT * FROM equipment WHERE owner=".$arrdefender['id']." AND type='T' AND status='E'");
  20. $mycape = $db -> Execute("SELECT * FROM equipment WHERE owner=".$player -> id." AND type='C' AND status='E'");
  21. $ecape = $db -> Execute("SELECT * FROM equipment WHERE owner=".$arrdefender['id']." AND type='C' AND status='E'");
  22. $myshield = $db -> Execute("SELECT * FROM equipment WHERE owner=".$player -> id." AND type='S' AND status='E'");
  23. $eshield = $db -> Execute("SELECT * FROM equipment WHERE owner=".$arrdefender['id']." AND type='S' AND status='E'");
  24. ?>


Czy jest mo¿liwo¶æ JAKO¦ uproszczenia tego by tyle zapytañ to dziadostwo nie s³a³o..?

Pozdrawiam. winksmiley.jpg
strife
1. Poszukaj na forum pod has³em BB Code, a tak¿e zainteresuj siê na wyra¿enia regularnymi. Mo¿esz równie¿ poszukaæ klasy na forum, BzikOS napisa³ takow± kiedy¶ winksmiley.jpg

2.

  1. <?php
  2. $mywep = $db -> Execute("SELECT * FROM equipment WHERE owner=".$player -> id." AND type='W' AND status='E'");
  3. $myarm = $db -> Execute("SELECT * FROM equipment WHERE owner=".$player -> id." AND type='A' AND status='E'");
  4. $myhelm = $db -> Execute("SELECT * FROM equipment WHERE owner=".$player -> id." AND type='H' AND status='E'");
  5. $mylegs = $db -> Execute("SELECT * FROM equipment WHERE owner=".$player -> id." AND type='L' AND status='E'");
  6. ?>


a ) Zamiast gwiazdki, pobieramy te dane które potrzebujemy
b ) Wydaje mi siê, ¿e lepiej u¿yæ jednego zapytania

  1. <?php
  2. "SELECT * FROM equipment WHERE owner=".$player -> id."
  3. ?>


A nastêpnie poprzez php, wyci±gn±æ potrzebne warto¶ci. Resztê zapytañ podobnie mo¿na poprawiæ. Chocia¿ specem od zapytañ nie jestem tongue.gif

c ) Mo¿esz równie¿ cache'owaæ zapytania, aby przyspieszyæ dzia³anie skryptu.

Pozdrawiam.

~edit
Dwa koty Ci odpisa³y biggrin.gif
SongoQ
Ad 1. Wyrazenia regularne, wiele razy bylo na forum szukaj.
Ad 2. Pogrupuj operacje czyli moznesz kilka operacja zamknac w grupe i wtedy w warunku IN dac

  1. <?php
  2. $mywep = $db -> Execute("SELECT * FROM equipment WHERE owner=".$player -> id." AND type IN ('W', 'A', 'H', 'L') AND status='E'");
  3. ?>
domis86
tak jak koledzy powiedzieli zmniejsz ilosc zapytan -> to podstawa
Lepiej miec mniej zapytan pobieraj±cych wiecej danych niz odwrotnie.
Wlasnie "query" i "execute" zabieraj± najwiêcej czasu - a nie "fetch". aarambo.gif
Ania-678
1 - EDIT - zostało rozwiązane już.

2 - W jedno tego nie wrzuce bo 4 zapytania są z innej tabeli, oraz co drugie ma inny warunek WHERE
Oraz gwiazda musi być bo tabelka ma jakieś 10 pól i wszystkie skrypt potrzebuje...
No i te zmienne od tych zapytań - muszę je mieć bo skrypt sporych rozmiarów dość jest i na nich operuje, a nie mam pojęcia jak rozbić na ów zmienne wzorując sie na type jeśli bym użyła:

  1. <?php
  2. $aaa = $db -> Execute("SELECT * FROM equipment WHERE owner=".$player -> id." AND status='E'");
  3. ?>


Przez while ?
To jest wersja lo-fi g³ównej zawarto¶ci. Aby zobaczyæ pe³n± wersjê z wiêksz± zawarto¶ci±, obrazkami i formatowaniem proszê kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.