Wypowiedzi
-
Aha zapomniałbym, jak zobaczyć jakie są dostępne operatory masz napisane tutaj:
http://www.postgresql.org/docs/9.1/interactive/indexes... -
# CREATE TABLE cokolwiek(id serial, cokolwiek text);
# CREATE INDEX cokolwiek_postgres_specific_index
ON cokolwiek
USING btree
(lower(substr(cokolwiek, 1, 5)) varchar_pattern_ops);;
CREATE INDEX
# EXPLAIN ANALYZE SELECT * FROM cokolwiek WHERE lower(substr(cokolwiek, 1, 5)) LIKE 'testo%';
QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------------------------
Bitmap Heap Scan on cokolwiek (cost=90.94..4979.02 rows=4155 width=15) (actual time=0.084..0.085 rows=1 loops=1)
Filter: (lower(substr(cokolwiek, 1, 5)) ~~ 'testo%'::text)
-> Bitmap Index Scan on cokolwiek_postgres_specific_index (cost=0.00..89.90 rows=4155 width=0) (actual time=0.058..0.058 rows=1 loops=1)
Index Cond: ((lower(substr(cokolwiek, 1, 5)) ~>=~ 'testo'::text) AND (lower(substr(cokolwiek, 1, 5)) ~<~ 'testp'::text))
Total runtime: 0.123 ms
(5 wierszy)
Jeżeli zrobiłbyś tylko:
CREATE INDEX cokolwiek_idx ON cokolwiek(lower(substr(cokolwiek, 1, 5))
to by z indeksu nie skorzystało... A raczej skorzystało by, ale tylko w przypadku " LIKE 'testo' " lub " = 'testo' ", czyli bez wildcardów. Ogólnie to chyba potrzebujesz oba indeksy, na 99% potrzebujesz taki ,,normalny'' do ,,=''.
W tabelce jest trochę danych wygenerowanych losowo:
# SELECT count(*) FROM cokolwiek;
count
--------
831027
(1 wiersz)
Jakby nadal nie działało, to pamiętaj o takich poleceniach jak VACUUM, VACUUM ANALYZE, ANALYZE.
Jakby co to pisz, w postgresie spotkałem się już z taką ilością ,,losowych'' zdarzeń, że pewnie będę w stanie pomóc ;-). -
Tomasz B.:
Teraz to tak jest że w programie mam pętle gdzie sobie czytam w kółko z każdej z osobna dane, analizuję podejmuję działania. Lipa jest taka że te bazy danych mają różną strukturę i dla jednej mam zapytanie select a,b from z a na innej mam select b,a from d.
Jeżeli to jest największy problem, to może po prostu naklikaj w każdej z baz widoki, które ujednolicą nazwy i kolejności kolumn, wtedy będziesz miał zawsze te same zapytania a łączył się do różnych baz. -
Jak już przeparsujesz sobie pliki konfiguracyjne, to możesz to po prostu zrobić przez psql:
psql -U user baza -c 'INSERT INTO ....'
-
Możesz przesłonić odpowiednio po prostu metodę linkToDelete w nazwa_modułuGeneratorHelper. Jest trochę takich rzeczy, których chyba ,,niedokończyli'' ;-), albo po prostu zapomnieli, np. jak ustawisz na konkretne pole credentialsa, to na liście się schowa, w formularzu ukryje i nikt nie wie o co chodzi :-). Przy okazji
title: <?php echo $i18n->__("Edycja artykułu - %%title%%")."\n"; ?>
zdaje się ze tytuły tak czy siak lecą w i18n, także bez sensu że to 2x odpalasz.
Ogólnie to polecam zrobić sobie własny theme do admin-generatora na podstawie istniejącego i poprawić po prostu takie rzeczy. -
Polecam jeszcze zerknąć na ofertę statnet.pl, sam korzystam od ponad roku i jestem zadowolony.
-
Do analizowania tego co się dzieje, warto sobie włączyć RewriteLog.
http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#... -
Musisz skorzystać z RewriteCond, coś w stylu:
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} !^admin/
RewriteRule ^pl/(.*)$ /$1 [R=301,L]
</IfModule>
-
Jeżeli są wgrywane później, to pewnie przez AJAX? Może skorzystać z ajaxStop?
-
Skoro z rekurencją, to może tak:
void reverse(char *str) {
if ((*str)!='\0')
reverse(str+1);
printf("%c", str[0]);
}
Taki żart oczywiście :-). -
Najprościej zrób tak, w tej funkcji co ajax-em coś pobiera.
jQuery('#accordion').accordion('destroy');
jQuery.get( ... );
jQuery('#accordion').accordion();
W skrócie: wywalasz stary, pobierasz nowy content i robisz nowy. -
Jak masz funkcję
function a() {
echo 'hello';
}
i napiszesz
echo a();
zamiast
a();
to faktycznie zadziała, ale ja też nie uznałbym tego za poprawne ;-). -
To samo co powyżej można też zrobić tak:
<?php
$file = new Imagick();
$file->readImage('file.pdf');
$file->writeImage('file.jpg');
$file->clear();
$file->destroy();
Jeżeli mamy na serwerze w php.ini włączoną obsługe image magick-a. -
Zaglądałeś tutaj?
http://www.symfony-project.org/more-with-symfony/1_4/e...
Tak samo, n.t. formularzy.
http://www.symfony-project.org/more-with-symfony/1_4/e... -
Zauważyłem jeszcze jedną rzecz:
// to
$("input[id ^= 'sk']").click(
// chyba miało być tak:
$("input[id ^= 'sk']").click(function(){
Ale mniejsza o to, coś się pewnie wycięło. Wywołanie tego JS może być albo powtarzalne, albo nie, w zależności od tego czy poprzez ,,$("input[id ^= 'sk']")'' dopasowujesz jednego inputa czy wiele. Sytuacja którą opisałeś wygląda tak jakbyś dał:
<input id='sk1'/>
<script>$("input[id ^= 'sk']").click( ... );</script>
<input id='sk2'/>
<script>$("input[id ^= 'sk']").click( ... );</script>
<input id='sk3'/>
<script>$("input[id ^= 'sk']").click( ... );</script>
co spowoduje że po kliknięciu każdego z tych trzech inputów funkcja w click(...) wywoła się trzy razy.
a powinno być albo:
<input id='sk1'/>
<input id='sk2'/>
<input id='sk3'/>
<script>$("input[id ^= 'sk']").click( ... );</script>
co daje jednorazowe podpięcie ,,click'' pod wszystkie inputy na raz, albo:
<input id='sk1'/>
<script>$("#sk1").click( ... );</script>
<input id='sk2'/>
<script>$("#sk2").click( ... );</script>
<input id='sk3'/>
<script>$("#sk3").click( ... );</script>
co daje podpięcie pojedynczo jednego wywołania funkcji pod jeden konkretny input. -
Opisana przez Ciebie sytuacja wygląda tak, jakbyś ten kod JS który podałeś wstawił w jakiegoś foreach-a w którym tworzysz wszystkie wiadomości i powstaje coś w stylu:
wiadomość1
js
wiadomość2
js
Wtedy na zdarzenie wywoła się tyle razy ile razy zostało podpięte :-). -
Skoro czysty Postgres, to może typy geometryczne, np. POINT:
http://www.postgresql.org/docs/8.4/interactive/datatyp...
+
http://www.postgresql.org/docs/8.4/interactive/functio...
Przykład:
CREATE TABLE test(id serial, latlng POINT);
INSERT INTO test(latlng) VALUES ('(10.0,20.0)'), ('(100.0,200.0)');
SELECT id, latlng, latlng<->'(0.0,0.0)' AS distance from test WHERE (latlng<->'(0.0,0.0)')<23;
id | latlng | distance
----+---------+------------------
1 | (10,20) | 22.3606797749979
-
http://www.phppatterns.com/docs/?idx=design - beznadziejna grafika, ale warto zajrzeć. Szczególnie ciekawe jest: http://www.phppatterns.com/docs/design/hello_world_in_... :-).
-
Też polecam vipserv.org. Nie próbowałem w prawdzie z Django, ale ruby on rails śmiga bez problemu. Jakbyś miał problemy, czegoś by brakowało, to administratorzy na pewno posłużą pomocą :-).
-
Nie wiem czy dobrze zrozumiałem pytanie, ale event przekazany do metody progress ma takie pole jak currentTarget. Możesz wrzucać loadery do jakiejś tablicy jednocześnie do drugiej wpisywać zera, a w metodzie progress(event:ProgressEvent) dać
var idx:Number = tablica.indexOf(event.currentTarget);
i teraz
druga_tabilca[idx] = event.bytesLoaded*100/event.bytesTotal;
W drugiej tablicy masz chyba to o co pytasz :-).
- 1
- 2