Jump to content
php.lv forumi

Jackal

Reģistrētie lietotāji
  • Posts

    215
  • Joined

  • Last visited

Posts posted by Jackal

  1. SELECT id, title, b.topics FROM forum_category AS a, (SELECT COUNT(id) AS topics, category AS category FROM forum_topic WHERE category = a.id) AS b

     

    Parādās kļūda: Unknown column 'a.id' in 'where clause'

     

    Kāpēc apakšvaicājumā nevar izmantot datus no citas tabulas, jeb es ko esmu līki uzrakstijis?

  2. Ir .htaccess fails, kurā ir šādas rindas

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule (.*) index.php?$1

     

    Problēma tāda, ka, ja pieprasu neeksistējošu failu, piemeram, javascript failu, tad tiek pieprasīts index.php.

    Vai var uztaisīt tā, ka, ja pieprasa neeksistejosu failu, tad tiek paradīts "404 not Found"?

  3. Ir datubāzes klase, kas ir izveidota izmantojot singleton patternu, lai visur būtu pieejams šis datubāzes objekts. Viss bija ļoti jauki, līdz nesavajadzējās izmantot vairākas konekcijas pie datubāzes. Varbūt kāds arī ir saskāries ar šo problēmu un varbūt ir attradis sakarīgu risinājumu, protams, neizmantojot global.

  4. Redz, no šitadām klasēm ir jēga, ja vēlāk vēlēsies nomainīt mysql pret kadu citu serveri. Nebūs jāpārrakta visā kodā mysql funkcijas, tikai iespejams būs japamaina daži vaicajumi.

  5. <script type="text/javascript">
    function insert(image){
    document.getElementById("text").innerHTML += image;
    }
    </script>
    
    <textarea id="text"></textarea>
    
    <img src="smile.jpg" alt="" onclick="insert('smile')" />
    

     

    Nepārbaudiju, bet vajadzētu strādāt.

  6. imageline funkcija decimālskaitļus neņem pretī. cik saprotu, tad visus padotos decimālskaitļus tā pārvērš par veseliem skaitļiem. Bet ja es nevaru padot decimālskaitļus, tad es nevaru uzzīmēt precīzu grafiku. Man, piemēram, ir skaitļi 10.06, 10.05, 10.07, kā lai uzzīmē precīzu grafiku, lai redzētu atšķirību starp 10.06 un 10.07? It kā varētu reizināt ar 100, bet tādā gadijumā man ir jātaisa paša grafika izmērs ļoti liels, kas manā gadijumā neder. Ir varianti?

  7. Negribējās taisīt jaunu tēmu tāpēc jautāšu tepat. Kā ir ar enkapsulāciju iekš javascript? Cik saprotu, tad publiskās un privātās metodes var panākt tā kā ir zemāk esošajā piemērā. Varbūt ir kāds cits, labāks variants?

     

     

    function klase(){
      var obj = new Object();
    
      //private methods
      obj.show = function(value){
    
      alert(value);
    
    
      }
    
      //public methods
      this.display = function(value){
      obj.show(value);
      }
    }
    
    
    var klase = new klase();
    klase.display("text");

  8. Kods: http://paste.php.lv/1cdee0dd0d1f44997d59ba...58dfec?lang=php

     

    Šī ir daļa AJAX koda un kods nav pilnībā manis rakstīts.

    Bet, lieta tāda, ka viss it kā darbojas līdz onreadystatechange funkcijai

     

    Pirms onreadystatechange funkcijas parāda, ka objekts XmlHttpRequest ir izveidots, bet iekš onreadystatechange funkcijas XmlHttpRequest objekta vairs nav, līdz ar to nevar vairs pārbaudīt readyState.

     

    Kur varētu būt problēma?

  9. Meklējot par JavaScript OOP esmu atradis divus veidus, kā var veidot objektus

     

    1.

    function HelloWorld(){
     this.DisplayGreeting = function(){
      document.write("Hello, world!");
     }  
    }

     

     

    2.

    function HelloWorld(){
    this.DisplayGreeting  = DisplayGreeting;
    
     function DisplayGreeting (){
      document.write("Hello, world!");
     }  
    }

     

    Ja jau ir divi veidi, tad ir jābūt kādai atšķirībai. Kāda tad ir tā galvenā atšķirība? Ātrdarbība vai kas cits? Kāpēc izmantot vienu vai otru veidu?

     

    Un vēl viens jautājums, ja es izmantoju otro variantu un gribu kādā objekta metodē izsaukt citu šī paša objekta metodi, vai tad arī ir jāizmanto "this" kā zemāk esošajā piemērā?

     

    function HelloWorld(){
    this.Greeting  = Greeting;
    this.DisplayText  = DisplayText;
    
     function Greeting (){
      document.write("Hello, world!");
     }
    
    function DisplayText (){
      this.Greeting ();
     }
    }

  10. Ar regulārajām izteiksmēm esmu darbijies ļoti maz, tāpēc nevaru uzraktīt vienkāršu izteiksmi :(.

     

    Kods

    $content = "
    <div>
    <div class=\"post\">1<div class=\"bottom\"></div>
    <div class=\"post\">2<div class=\"bottom\"></div>
    <div class=\"post\">3<div class=\"bottom\"></div>
    <div class=\"post\">4<div class=\"bottom\"></div>
    <div class=\"post\">5<div class=\"bottom\"></div>
    </div>
    ";
    
    
    preg_match_all("/<div class=\"post\">(.*)<div class=\"bottom\"><\/div>/s", $content, $array);
    
    print_r($array);

     

    Izvada

    Array
    (
    [0] => Array
    	(
    		[0] => <div class="post">1<div class="bottom"></div>
    <div class="post">2<div class="bottom"></div>
    <div class="post">3<div class="bottom"></div>
    <div class="post">4<div class="bottom"></div>
    <div class="post">5<div class="bottom"></div>
    	)
    
    [1] => Array
    	(
    		[0] => 1<div class="bottom"></div>
    <div class="post">2<div class="bottom"></div>
    <div class="post">3<div class="bottom"></div>
    
    <div class="post">4<div class="bottom"></div>
    <div class="post">5
    	)
    
    )

     

    Tas nav gluži tas ko man vajadzēja. Gribēju, lai šis (<div class=\"post\">1<div class=\"bottom\"></div>) tiek ņemts katrs atsevišķi. Ir vajadzība dabūt ārā tos skaitļus, kas atrodas starp <div class="post"> un <div class="bottom"></div>.

     

    Kā parezi būtu jāraksta šī regulārā izteiksme?

  11. class klase extends Example {
     function show(){
    $this->bark();
    	// vai
    	// parent::bark();
     }
    }

    Tas, protams, atkarībā no vajadzības un cik ļoti viena klase balstās uz otras.

     

    Šis variants derētu, ja man būtu viena globālā klase, bet diemžēl tādas ir vairākas (vismaz četras).

     

    Bija doma darīt līdzīgi, tikai klasē, kuru extendoju visām pārējām klasēm, glabāt izveidotos objektus. Mēģināju, jau tādā veidā uztaisīt, bet īsti nestrādāja.

  12. Iekš OOP vēl nav tik labas zināšanas un gribētu attrast labāku variantu. Nepatīk izmantot global katrā funkcijā, kur nepieciešams kāds objekts, piemēram, template. Ir pamata klases kā db, template, log, utt. Vajadzētu viņas padarīt pieejamas pilnīgi visur (citos objekotos) arī savā starpā. Esmu lasijis par singleton patternu, bet tā līdz galam neesmu iebraucis kā tas strādā.

     

    Te it kā būtu singleton piemērs no php.net

     

    <?php
    class Example
    {
    // Hold an instance of the class
    private static $instance;
    
    // A private constructor; prevents direct creation of object
    private function __construct() 
    {
    	echo 'I am constructed';
    }
    
    // The singleton method
    public static function singleton() 
    {
    	if (!isset(self::$instance)) {
    		$c = __CLASS__;
    		self::$instance = new $c;
    	}
    
    	return self::$instance;
    }
    
    // Example method
    public function bark()
    {
    	echo 'Woof!';
    }
    
    // Prevent users to clone the instance
    public function __clone()
    {
    	trigger_error('Clone is not allowed.', E_USER_ERROR);
    }
    
    }
    
    ?>

     

    Cik saprotu, lai varētu šo objektu, kuram ir singleton patterns, izmantot citā klasē, tad man vajag darīt kaut kā tā

     

    <?php
    class klase{
    var $test;
    
    function __construct(){
    $this->test = Example::singleton();
    
    }
    
    function show(){
    $this->test->bark();
    }
    
    }
    
    ?>

     

    Vai pareizi esmu sapratis? Ja jā tad šis variants arī neliekas tas labākais, jo tad tik pat labi šī vietā "$this->test = Example::singleton();" var darīt arī tā:

     

    <?php
    $test = new Example();
    
    class klase{
    var $test;
    
    function __construct(){
    global $test;
    
    $this->test = $test;
    
    }
    
    function show(){
    $this->test->bark();
    }
    
    }
    
    ?>

     

    Īsti nepatīk tas, ka katras klases konstruktorā sanāk rakstīt vienu un to pašu un, ja kādreiz nāk kāda klase klāt, tad arī jāpalabo visu pārējo klašu konstruktori, it kā jau nekad tās klases nebūs tik daudz, ka to nevarēs izdarīt, bet nu kā jau rakstiju, gribās atrast labāku variantu, protams, ja tāds vispār ir.

     

    Ir idejas?

×
×
  • Create New...