Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: CIKLAS + FOREACH()

Parašė ozzWANTED· 2010 Kov. 20 01:03:43
#8

visų pirma yra toks dalykas kaip dbarraynum(dbquery(...),ID);

todėl gali daryti taip:
$uzklausa = dbquery(...);
$dydis = dbrows($uzklausa);
for($i=0;$i<$dydis;$i++) {
 // Į kešą dabar ką nori susikrauni;
 list($settings[$i]['user_id'],$settings[$i]['user_name'] = dbarraynum($uzklausa,$i);
}



Orginalius, ne fusion funkcijų pavadinimus pasiimsi iš maincore.php, jeigu reikia.


$query = db_query("SELECT SQL_CACHE * FROM `main_settings`");

foreach ($query as $data) {
   $settings[$data['settings_name']] = $data['settings_value'];
}



Toks dalykas iš esmės yra neteisingas, dbquery, tik sukelia į atmintį užklausos rezultatą, bet jos niekaip neparodo, nes negalima mysql'o array'aus nuskaityti php array funkcijomis.
dbarray, dbarraynum, paima pirmąją eilutę, tačiau tu gali užklausoje(LIMIT 5,1) arba dbarraynum($uzklausa,5); nurodyti kurią rezultato eilutę nori matyti.

Dar gali su having - "having sum(total_acts) > 15" pasirimti reikiamą rezultatą, jeigu where parametrais neįmanoma.

Tačiau bet kuriuo atveju tau reikia kokios nors array funkcijos.

while funkcija iš tikrųjų veikia tokiu pat pagrindu kaip:
dbarray($uzklausa);
dbarray($uzklausa);
Tiesiog važiuoja rodykle atmintyje po vieną eilutę žemyn.

Foreach galima taikyti, tik tuomet kaip JAU YRA PHP seka, ir tu ją nori pergrupuoti.


----
Dar žinok, kad komanda SELECT SQL_CACHE sth FROM some_tbl
veiks tik jei:
my.cnf faile bus:
query_cache_type = 2

Dababase independent atveju:
SELECT /*! SQL_CACHE */ sth FROM some_tbl

Redagavo ozzWANTED· 2010 Kov. 20 01:03:12