Jump to content
php.lv forumi

litt

Reģistrētie lietotāji
  • Posts

    124
  • Joined

  • Last visited

Posts posted by litt

  1. 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)?

  2. 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

  3. .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)

  4. 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

  5. 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'] : '';

  6. 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)

  7. litt, kāda jēga zināt cik rindas izselektētas? To var tikpat labi php pusē izvadot ierakstus uzskaitīt.

    Galvenais jau zināt cik tabulā kopā ir ierakstu, lai lappušu skaitu var izrēķināt!

    24003[/snapback]

    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) .. )

  8. 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)

  9. 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

  10. 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

  11. 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...