Jump to content
php.lv forumi

litt

Reģistrētie lietotāji
  • Posts

    124
  • Joined

  • Last visited

Everything posted by litt

  1. litt

    PHP array tree

    Rezultātā vajag koku, kur katra parenta masīva elements 'chld' ir masīvs ar konkrētā parenta childs (koka dziļums var būt bezgalīgs)
  2. Datubāzē glabājās ieraksti, kuriem ir id, title, par - parentID, ch - children count. Ar kverija palīdzību no bāzes dabonu šādu masīvu (ORDER BY par, title) Array ( [0] => Array ( [id] => 1 [par] => 0 [ch] => 2 [title] => Main page ) [1] => Array ( [id] => 4 [par] => 1 [ch] => 0 [title] => mape 1 ) [2] => Array ( [id] => 5 [par] => 1 [ch] => 2 [title] => mape 2 ) [3] => Array ( [id] => 6 [par] => 5 [ch] => 1 [title] => apaksh1 ) [4] => Array ( [id] => 8 [par] => 5 [ch] => 0 [title] => apaksh2 ) [5] => Array ( [id] => 7 [par] => 6 [ch] => 0 [title] => sub ) ) Rezultātā vajag šādu "koku" no šī masīva Array ( [0] => Array ( [id] => 1 [par] => 0 [ch] => 2 [title] => Main page [chld] => Array ( [0] => Array ( [id] => 4 [par] => 1 [ch] => 0 [title] => mape 1 [chld] => Array ( ) ) [1] => Array ( [id] => 5 [par] => 1 [ch] => 2 [title] => mape 2 [chld] => Array ( [0] => Array ( [id] => 6 [par] => 5 [ch] => 1 [title] => apaksh1 [chld] => Array ( [0] => Array ( [id] => 7 [par] => 6 [ch] => 0 [title] => sub [chld] => Array ( ) ) ) ) [1] => Array ( [id] => 8 [par] => 5 [ch] => 0 [title] => apaksh2 [chld] => Array ( ) ) ) ) ) ) ) Ir kāds veids kā ar PHP to visu ātri apstrādāt un dabūt vēlamo rezultātu (izejas masīvs var būt liels, tapēc svarīga ir ātrdarbība)?
  3. litt

    Linki

    Lai noskaidrotu šo linku jēgu paņem un pamaini tos ciparus linka galā un skaties kas notiek. Uztaisīt to visu var ar masīva $_GET palīdzību
  4. Inclūdotais php fails jau parasti pats izpildās. Vēl vari paskatīties funkciju eval()
  5. Skaidrs, kaut kā neiedomājos par to štelli.. Palikšu pie server.lv/products-5 varianta
  6. Ar : gribēju atdalīt izvēlēto lapu. Piemēram, man ir sadaļa products un izvēlēta ir 5. lapa Adrese tādā gadījumā būtu server.lv/products:5 server.lv/products_5 izskatītos patizli
  7. .htaccess fails izskatās šādi RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?p=$1 [QSA,L] Ja mēģinu rakstīt http://localhost/a/b:c tad viss kārtībā, taču, ja mēģinu rakstīt http://localhost/a:b tad izmet kļūdu 403 Forbidden. Kļūda ir tikai tad, ja adrese ir mainigais:mainigais2, ja adrese ir mainigais/mainigais:mainigais2 (ir vismaz viens slash), tad viss ok. Kur varētu būt problēma (ja : vietā ielieku _ tad arī viss ir ok)
  8. Kur ir problēma? Katru nakti tev palaižas logrotate un uzģenerē vajadzīgos logus. Kādu laiciņu pēc logrotate darbības palaid cron skripiņu, kurš nolasa uzģenerēto log failu, sasplito pa tev vajadzīgajiem laukiem un iemet bāzē. Pēc tam uzraksti nelielus skripiņus, kuri no bāzes vilks laukā tev vajadzīgo informāciju
  9. litt

    popup

    Tu vispār pats skaties, ko raksti? Kā tev kaut kas var strādāt, ja trūkst window.open
  10. Ir ātrāk, jo var stringu drukāt laukā pa tiešo, nav jāpārbauda ir/nav mainīgie un vajadzības gadījuma tie jānomaina ar atbilstošo saturu. Es personīgi lietoju echo 'teksts1' . $mainīgais . 'teksts2';
  11. litt

    par $_GET

    Kaut kur savā kodā tu centies piekļūt neeksistējošam masīva elementam. Uzliec pārbaudi if(isset($masivs['elements'])) vai arī $mainigais = $masivs['elements'] ? $masivs['elements'] : '';
  12. 3. variants nav vajadzīgs, bet pirmie 2 skatoties pēc situācijas
  13. apskaties curl funkcijas
  14. Tas laikam bija piemērs no tā brīža, kad šo štelli apguvu pa punktiem (visi delimiteri, encodingi). Loģiski, ka var tā $subject = '=?utf-8?B?' . base64_encode($subject) . '?='; Aizmirsu pateikt, ka tādā veidā var (vajag) kodēt arī vārdu, no kura tiek sūtīts e-pasts (lai normāli uzrādās arī Jāņa Rūķīša sūtītie maili)
  15. $subject = '=?' . 'utf-8' . '?' . 'B' . '?' . base64_encode($subject) . '?=';
  16. Nu bet tieši to arī dara otrais kverijs. 1. kverijā ir tikai LIMIT dati, savukārt otrajā ir visas tabulas ierakstu skaits (tas pats, kas SELECT COUNT(id) .. )
  17. Ja ir jaunāks MySQL, tad var darīt tā: SELECT SQL_CALC_FOUND_ROWS * FROM table LIMIT x, y; un pēc tam SLECT FOUND_ROWS() Rezultātā 2. kverijs atgriezīs cik rindas būtu selektētas, ja nebūtu LIMIT pirmajā kverijā. It ka arī 2 kveriji jāizpilda, taču kods mazāks un ērtāk rediģējams (jārediģē tikai 1 kverijs)
  18. Man bija līdzīga problēma, bet to atrisināja SET CHARSET utf8 uzreiz pēc mysql_select_db()
  19. litt

    Otrie desmit

    Jābūt $rinda['id']
  20. $passw = '' . substr(md5( mktime() ), 0, 8);
  21. Varbūt vieglāk ir uztaisīt pašam nekā "smagi pārveidot"? Vismaz pēc tam sapratīsi kas kā notiek un jebkurā brīdī varēsi pielikt klāt jaunas fīčas utt
  22. Nezinu vai statistika txt failā ir pati labākā doma.. Man vienam čatiņam statistika darbojas tā, ka pie teksta pievienošanas tiek saglabāts failā laiks (strtotime), nickname, chat_room, message_type (viena rinda, viens ieraksts, atsevišķās vērtības ir atdalītas ar ";", bet tam nav nozīme) Kamēr bija pāris tūkstoši rindiņas, viss bija ok, statistiku varēja ievākt kādu tik vajag, tagad arī to var izdarīt, taču failā jau ir vairāk kā 750 000 rindas un datu apstrāde aizņem krietnu laiku. Lai dabūtu statistiku pa dienām jau ir vajadzīga vairāk kā pusminūte. Visus datus importēju MySQL datubāzē un identisks rezultāts tika iegūts 3sec laikā P.S visādu skriptus meklē hotscripts.com
  23. Nezinu vai un kā strādās šis variants (caur PC it kā viss ok), bet mēģināts nav zaudēts ini_set('session.use_trans_sid', 1); ini_set('session.use_cookies', 0); session_start(); $SESSstr = '?' . ini_get('session.name') . '=' . session_id(); Parastie linki mainīsies automātiski, bet pie formu submintēšanas action likšu klāt mainīgo $SESSstr
  24. Sveiki! Taisu nelielu guestbook priekš mobilajiem telefoniem ar visu reģistrāciju utt. Lietotājs vienu reizi ielogojās un tālāk viņa id, logins un cita informācija tiek glabāta sesijā tālākai izmantošanai. Problēma sākās tajā brīdī, kad rokās paņēmu Samsung x100 aparātu (ar manu nokia 3100 un opera uz kuras testēju viss kārtībā). Nezinu vai vaina manā skriptā vai aparātā vai kādos PHP uzstādījumos, bet Samsungs neņem pretī sesijas pirmā lapa: session_start (); $_SESSION['blabla'] = 'kaut_kas'; links uz otro lapu otrā lapa: session_start (); print_r($_SESSION); tā vietā, lai tur būtu mans sesijas masīva elements 'blabla' ar vērtību 'kaut_kas' ir tukšums, mainīgajā $_SESSION nav neviena vērtība. Kur varētu būt problēma? Varbūt skriptā vajag kaut kā stingrāk piešķirt vērtību vai varbūt php.ini uzstādījumos kaut kas nav labi (lai gan, ja citos pārlūkos strādā, tad vajadzētu strādāt visur)
×
×
  • Create New...