Iată un exemplu de la unul din componentele mele Cod: // conectați clasa și setați datele implicite
jimport ('joomla.html.paginare');
$ limit = $ ad_toplist;
$ limitstart = JRequest :: getVar ('limitstart', 0, 'int');
$ page_nav_links = '';
// primiți numărul
$ query = "SELECT count (*) AS count de FROM #__joopic WHERE publicat = 1 AND approved = 1";
$ db-> setQuery ($ interogare);
$ row = $ db-> LoadObject ();
$ total = $ row-> count;
$ pageNav = JPaginare nouă ($ total, $ limitstart, $ limit);
$ page_nav_links = $ pageNav-> getPagesLinks ();
// cererea în sine în baza de date, luând în considerare datele de paginare
$ query = 'SELECT a. *, c. *, a.id ca ajutor,
CASE LA CHAR_LENGTH (a.imgalias) ATUNCI CONCAT_WS (\ ': \', a.id, a.imgalias) END ELSE a.id ca slug,
CASE LA CHAR_LENGTH (c.catailas) ATUNCI CONCAT_WS (\ ': \', c.cid, c.catailas) END ELSE c.cid ca catslug
Din #__joopic AS a
LEFT JOIN #__joopic_catg AS c pe c.cid = a.catid
WHERE a.published = 1 ȘI a.published = 1 ȘI a.approved = 1 AND c.published = 1
COMANDA de limita a.id desc '. $ Limitstart.', '. $ Limit.' ';
$ db-> setQuery ($ interogare);
// prelucrarea ulterioară și ieșirea într-un ciclu, în acest caz nu este reală
Dar am fost în acest loc: „// apoi în procesul de prelucrare și de ieșire într-o buclă, în acest caz, nu este adevărat“, o foarte importantă)) Asta e tot ce fac așa cum trebuie în acest exemplu, dar nu funcționează și toate! Acesta a fost după această linie penultima: "$ DB> setQuery ($ query);" Cum se trimite o cerere? Am deja și $ rL = $ db-> loadResult (); și $ rL = $ db-> LoadObject (); și $ rL = $ db-> loadObjectList (); și $ rL = $ db-> loadAssocList (); toți au încercat! și încă mai produce o eroare: „Atenție: Invalid argument furnizate pentru foreach ()“ Ei bine, asta e ceea ce fac greșit. De ce este matricea goală?
După ce înregistrarea nu este una, atunci trebuie să utilizați ceva de genul $ rows = $ db-> loadObjectList (). În mod corect înțeleg, ce este un șir de cadre la voi gol? Dacă da, atunci eroarea se află în interogarea SQL în sine. Uită-te la articolul original, acolo mai în detaliu (deși în engleză).
Iată codul meu: (doar este deja scris în Jumlapedia): ////////// Începeți ///// $ db = JFactory :: getDBO (); $ Lim = $ mainframe-> getUserStateFromRequest ( "$ option.li mit", 'limită', 14, 'int'); // Aceasta este variabila $ option.limit. în orice caz, chiar dacă am pus, de exemplu 4, acesta este în continuare aceeași eroare $ lim0 = JRequest :: getVar ( 'limitstart', 0, '', 'int'); $ DB> setQuery ( "SELECT p.product_sku DIN #___product AS p INTERIOARĂ TE #___ product_type_1 CA pt ON p.product_id = pt.product_id UNDE p.product_publish = COMANDA 'Y' BY ASC p.product_name", $ lim0, $ lim); $ RL = $ DB> loadObjectList (); $ D b-> setQuery ( "SELECT COUNT (*) FROM #___product AS p INTERIOARĂ TE #___ product_type_1 CA pt ON p.product_id = pt.product_id WHERE p.product_publish = 'Y'"); jimport ( 'joomla.html.pagination'); $ PageNav = JPagination nou ($ DB> loadResult (), $ lim0, $ lim); foreach ($ rL ca $ r)
Îți cer iertare, repede căutând destul de corect, este necesar să înțelegi în detaliu. Din păcate, în momentul de față nu am o astfel de oportunitate.