blondine Posted January 21, 2010 Report Share Posted January 21, 2010 tatad fīča ir tāda, catalog.class.php - tiek apstrādāti dati no db izmantojot: while($row = mysql_fetch_assoc($this->sql_res)) viss itkā strādā, bet tad meginaju pieslegties paging.class.php failam, kur atrodas class pager mainigie, funkcijas utt. Ir nepieciesams izaukt funkciju, bet neizdodas ideja varetu but tada.. $pager = new pager($sql,'page',5); while($row = mysql_fetch_array($pager->sql_res)).. ceru, ka doma ir saprotama! Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted January 21, 2010 Report Share Posted January 21, 2010 Ja godīgi nesaprotu kur īsti ir problēma. Izveido publisko klases atribūtu $sql_res un piešķir tam ResultObject, kuru saņem pēc mysql_query()... class Pager { public $sql_res; public function __construct() { ... $this->sql_res = mysql_query(...); ... } } $pager = new Pager(); while($row = mysql_fetch_assoc($pager->sql_res)) ... Quote Link to comment Share on other sites More sharing options...
2easy Posted January 22, 2010 Report Share Posted January 22, 2010 (edited) izskatās, ka vispirms jāizsauc $pager->doQuery(), un pēc tam tikai kkas būs tajā $pager->sql_res iespējams, ka sqlā ir kļūda. paskaties iekš doQuery(), ko izdod mysql_error(). vnk tur šobrīd nav nekāda potenciālo error apstrāde (laikam kodēja ļoti pašpārliecināts koderis :D). tas varētu izskaidrot arī kāpēc tev bija tas errors, tipa "mysql_fetch_assoc(): supplied argument is not a valid MySQL..." un vēl catalog.class.php 56. rindiņā ir mainīgais $sql_query, kurš tajā funkcijā nemaz nav definēts... jebkurā gadījumā 58. rindiņā tam mysql_fetch_assoc() tad būtu jāpadod $pager->sql_res, nevis $this->sql_res vsp izstrādes laikā ir ieteicams rādīt visus errorus: error_reporting(E_ALL); tad jau pati būtu pamanījusi kļūdu secinājumi: pirms sākt kodēt katalogus un peidžingot (neatkarīgi no ar/bez oop), vēlams iemācīties php/mysql pamatus Edited January 22, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted January 22, 2010 Report Share Posted January 22, 2010 Pamācies tomēr pamatus. Papildus - liekas, ka esi lasījis (lasījusi? Palikšu pie vīriešu dzimtes) vecus OOP tutoriāļus vecākām PHP versijām. Konstruktori būtu jādefinē ar funkciju __costruct(). Tavs variants ir novecojis, un drīz tam būtu jābūt (ja jau nav) deprecated. Klases atribūtus arī nevajag definēt ar var. Tas jaunajām PHP versijām ir deprecated. Tā vietā būtu jāraksta, piemēram, public $property; Ja tu no klases Catalog gribi piekļūt klases pager (tev klases vajadzētu saukt ar lielo burtu - Pager) atribūtam, tad nav jāraksta $this->sql_res, bet gan $myPaging->sql_res (tavā variantā). $this attiecas uz konkrēto klases objektu. Un vispār tev tur vēl ir visādas kļūdiņas, kaut vai kaut kā izvade pirms header() lietošanas... Es arī iesaku apgūt sākt ar pamatiem. PHP, pagaidām, nav baigi tīrā OOP valoda, tādēļ sāc bez OOP. Tad apskaties šo: http://uk3.php.net/manual/en/language.oop5.basic.php Tur būs jaunāka un pareizāka informācija... Quote Link to comment Share on other sites More sharing options...
2easy Posted January 23, 2010 Report Share Posted January 23, 2010 (edited) $sql_query definets mysql.class.php... bet nu nekaa ;( pamazam ari pamati tiek apguti ;) jā tur ir definēts $sql_query, taču lai citā klasē (kas manto šo mainīgo no mysql klases) tam varētu piekļūt, izmanto $this->sql_query vsp lai paņemtu datus no db un izdrukātu ar/bez padžinga, oop nafig nav nepieciešams. organizēt kodu loģiskos moduļos var arī vnk grupējot līdzīgas funkcijas. šeit vienīgā daudz maz iekš php izmantojamā oop fīča >> mantošana << tiek izmantota netēmā: extendod mysql, lai taisītu catalog. omg, var jau būt tas mūsdienās ir baigi labais oop stils tā darīt, taču db pieprasījumus var veikt ar parastu function call un rezultātus turpat uz vietas arī apstrādāt. kr4 kodu var organizēt ar pāris vnkāršām funkcijām, kas katra labi izdara savu darbu. bet tagad tu pati putrojies tajās klasēs... oop ir labs/kruts, taču to vajag lietot tad, kad tas kko atvieglo, nevis sarežģīt vnkāršas lietas Edited January 23, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.