Jump to content
php.lv forumi

marrtins

Reģistrētie lietotāji
  • Posts

    1,570
  • Joined

  • Last visited

Everything posted by marrtins

  1. register_globals = bad, mkei? (izņemot gadījumus, kad zina ko dara)? foreach($_GET as &$item) { $item = str_replace("/","",$item); $$item = $item; }
  2. Hmm, interesting... Nav Tev kaukāds vīrus ieperinājies lokālajā tīklā? No localhost ar lynx mēģināji skatīties?
  3. Yup, uz jaunajiem Firebird (liekas, ka uz ), kā jau darksing pieminēja: SELECT FIRST x [SKIP y] … [rest of query] Vai arī SELECT ... [ORDER BY <expr_list>] ROWS <expr1> [TO <expr2>] Uz firebird < 1.0 var mēģināt (čerezŽ) laist caur procedūru: CREATE PROCEDURE TABLE_LIMITER (start INTEGER, num INTEGER) RETURNS (id INTEGER, data_field1 VARCHAR(255), data_field2 VARCHAR(255), <utt.>, ...) AS DECLARE VARIABLE c INTEGER; BEGIN c = 0; FOR SELECT id, data_field1, data_field2, <utt.>, ... FROM some_table ORDER BY some_field INTO :id, :data_field1, :data_field2, :<utt.>, ... DO BEGIN IF (c = :start + :num) THEN EXIT; ELSE IF (c >= :start) THEN SUSPEND; c = c + 1; END END Totāls čerezžē :)) Protams, silti iesaku apgreidoties uz jaunāko (2.1RC2) - daudz stabilāks, visādas jaunas mantiņas un bumbulīši un arī ĀTRĀKS :)
  4. Ja ar kautkādu softu var pieslēgties pie interbase, tad arī ar (pareizi nokonfigurētu PHP vai Apache+PHP) arī jāvar. (OS 10048)Only one usage of each socket address (protocol/network address/port) is normaly permitted. : make_sock: could not bind to address 127.0.0.1:80 Unable to open logs Note the errors or messages above, and press the <ESC> key to exit. 26... Izskatās, ka apache jau ir palaists, tāpēc otrreiz palaist nevar. Paprovē uztaisīt elementāru ibase_pconnect PHP skriptiņu un palaist to no comandrindas. P.S. Wtf ir denver paka - nezinu :)
  5. ibase_pconnect('hosts.lv/3051:/db/path/datab.fdb', 'SYSDBA', 'masterkey', 'utf8'); 3051 - ports Uz Linux ātru roku kompilēt būtu apmēram šādi: 1) novelc PHP sourci tādai versijai kāda ir uz servaka 2) atzipo, cd ext/interbase 3) palaid `phpize` skriptu 4) ./configure --with-interbase=/opt/firebird 5) make Ja viss čiki, tad iekš modules jābūt interbase.so
  6. $a = rand(0,count(*)); SELECT * FROM tabula WHERE ORDER BY ID2 LIMIT $a, 1; bubu, no tā indexa nav jēgas, ja $a ir pietiekami liels. Piemēram, $a=800`000 - rezultātā index teorētiski tiek izmantot, bet jēgas nekādas, jo mysql iekšienē tikuntā tiek ģenerēts 800000 rindu sets. Pagaidām visefektīvākais ir Alekseja piedāvātais: for($x=0;$x<20;$x++) $a[]=rand(0,count(*)); $vaicajums='SELECT * FROM tabula WHERE ID IN ('.implode(',',$a).') LIMIT 1'; Nedaudz pārveidojot: $a = count(*); do { $sql = "SELECT * FROM tabula WHERE ID=".rand(0,$a)." LIMIT 1"; } while(!$r)
  7. Jā, tikai rows ir ierakstu skaits tabulā, kas nu nekādi nepalīdz.
  8. Jā, ciklveida pārlasīšana man arī bija prātā, taču noteikti pastāv arī kāds elegentāks risinājums :) $a = rand(0,count(*)); SELECT * FROM tabula WHERE ORDER BY ID2 LIMIT $a, 1; Šis varētu būt neefektīvs, ja $a ir pietiekami liels (MySQL neizmanto indexu :/)...
  9. ORDER BY RAND() LIMIT 1 ir ļauns, ja ir daudz ierakstu (netiek izmantoti indexi) Kāda pieredze ir šādiem risinājumiem? Gribētos kautko elegantāku. Viens variants varētu būt turēt vienā kolonnā (ID2) unikālus cipariņus no 0 līdz COUNT(*) un noģenerēt ar PHP $a = rand(0, COUNT(*)); SELECT * FROM tabula WHERE ID2=$a Protams, problēma ir uzturēt to virnki 0...COUNT(*) bez caurumiem (piemēram, pēc rindas izdzēšanas). Kāds elegantāks risinājums?
  10. Tad jau drīzāk char(32) :)
  11. Saglabā failu zem normāla nosaukuma, bet reālos glabā datubāzē. Piemēram, noģenerē md5(time()), saglabā to failu zem tā heša. Datubāzē saglabā reālo nosaukumu un to hešu.
  12. Kas vainas? Pricipā nekādas. Pierasts, ka darba sadaļā tiek publicēti reāli darba piedāvājumi un nevis mistiskas sadarbības ar nezināmu iznākumu. Tas būtu kā uzlabojums (ir tādi, kam galīgi negribas šāda tipa sadarbības filtrēt - pēdējā laikā tādu ir visai daudz). Ja ir baigā ideja, neredzu iemeslu atrast naudu kodera algošanai, kas varētu būt lētāk kā dalīties peļņā no baisās idejas :) Ja tomēr tā nav, tad ideja varbūt nav tik baisi laba?
  13. Pārvietots no http://php.lv/f/index.php?showtopic=9712 2admin: nevar šiem izveidot atsevišķu sadaļu - `Gribu sadarboties` vai tamldz? :)
  14. Varianti: 1) jau sačakarēta importējamā DB 2) nepareizi importēta DB - nepareizs encodings 3) nepareizi slēdzamies pie MySQL - nepareizs encodings (skat `SET NAMES <charset>`), vai arī mysqli_set_charset($db_conn, $db_charset); Ticu, ka Tev pie vainas ir 3)
  15. ORDER BY laukus ir jēga indexēt, ja 1) SELECT * FROM blabla ORDER BY index_part1, index_part2, ..., index_part<n>, kur index ir definēts katram laukam un *tieši* tādā secībā kā ORDER BY daļā (pietam, nemaisot ASC un DESC, izmantot funkcijas). (portams, var indexēt ne-pēc visiem ORDER BY izmantotiem laukiem, bet, teiksim, dažiem pirmajiem) 2) SELECT index_part1, ..., index_part<n> FROM blabla ORDER BY index_part<n+1>, ..., - index uz laukiem index_part1, index_part2 (tieši tādā secībā)
  16. Ja negribas, lai atkārtojas dati no t1, tad tikai GROUP_CONCAT() Personīgi es taisu ar JOINiem Dažreiz `select * from t1 vai t2` (ja t1 vai t2 ir relatīvi mazs) un samapoju ar otru tabulu iekš PHP
  17. `es no .php isti neka nesaprotu. .html vairak parprotu.` laps :)
  18. 1) ieslēdz error_reporting(E_ALL); 2) kāds ir ini_get('session.save_path') ?
  19. Var ieķeksēt saņemt vēstules tikai no draugiem un vnk atslēgt spamerus.
  20. To, ka JS ir funkcionāla es liku pretī apgalvojumam, JS *NAV* objektorienēta. Ja valodā X vienlaicīgi (un bez *hackiem*, skat vēlreiz Greenspun's Rule) var programmēt objektorientēti un/vai funkcionāli un/vai procedurāli un/vai ...., tad to mierīgi var pieskaitīt vienai, otrai vai trešai (vai jebkādā kombinācijā) valodu klasei un abgalvot, ka tā NAV ir parasta kašķēšanās. Ja Tev patīk google, tad `JavaScript prototype oriented`187,000 `JavaScript object oriented` 473,000 bet šajā gadījumā tas nav būtiskākais, jo kašķēšanās, kurai valodu klasei pieskaitīt konkrētu valodu, notiek arī daudz vairāk pieredzējušu programmētāju starpā. Būtiski ir tas, ka programmēt, piemēram, objektorientēti C nav tik eleganti (skat savu iepr pdf), kā programmēt funkcionāli JavaScript (skat jQuery). Un ja nav eleganti, tad rodas "liekvārdība" un pie noteiktu rindiņu/moduļu/simbolu skaita, kods vairs nebūs lasāms/uzturams. Jo objektorientēts C nezamazinās koda daudzumu (nepalielinās abstrakcijas līmeni), turpretī funkcionāla pieeja JS - samazina koda apjomu (palielina abstrakcijas līmeni), tātad to brīvi var pieskaitīt funkcionālo valodu klasei. Protams - to jau es arī teicu - atsķiras tikai objektorientētās pieejas implementācija. Sintakse nav ierastā Java/C++, bet ir cita - taču pamatideja paliek - veidot leilāku abstrakciju par, piemēram to pašu C. Plus vēl fīčas, ko dod prototype konstrukcija kā tāda.
  21. Šajā gadījumā JS lieki ir tikai statementi (return {} par iekavām var padiskutēt), bet C++ variants tiktiešām IR --pī-- :) Šajā sakarā man patīk http://en.wikipedia.org/wiki/Greenspun's_Tenth_Rule Šāds piton pieraksta variants kurā versijā parādījās? Taču atrodas kāds, kas apgalvo, ka JS valoda *NAV* objektorientēta ;)
  22. Es ļoti labi zinu, kas ir funkcionāla. Tevis nosauktajiem priekšā liekam Lisp un tad pārējos. JS ir patālu no funkcionālas valodas? Protams, ka Javascript nav pure functional, tomēr ir vistuvāk no visām "populārajām" valodām. Liels čakars? Spilgts piemērs jQuery. Ļoti eleganti, nevis čakarīgi. Piemērs funkcionālai pieejai JavaScriptā. function f(param) { return function (param2){ return param * param2; } } var a = f(2); alert(a(3)); To pašu visnotaļ ērti var izdarīt Perl`ā, Ruby, Pitonā (jau čakarīgāk), taču pamēģini to, piemēram C vai Paskālā vai kādā citā zemāka līmeņa valodā - tad būs skaidrs, kas ir čakarīgi :) Prototip-orientēts vai objekorientēts faktiski ir tikai implementācijas jautājums nevis fundamentālas atšķirības, ko ir vērts nodalīt. Piemēram, Haskelī vai Erlangā arī var programmēt objektorientēti, tāpēc mēs tās valodas nesaucam objekt-orientētas.
×
×
  • Create New...