Navigacija

Vartotojų tinkle

Prisijungusių svečių: 283
Prisijungusių narių: 0
Prisijungusių narių nėra

Registruoti nariai: 25,957
Naujausias narys: keistuole

Naujausi straipsniai

Paskutiniai nariai

keistuole 5 dienos
Gizmis 2 savaitės
Reikalas 2 savaitės
Rytis11 savaitės
MaFetas15 savaitės
ozzWANTED17 savaitės
saulyzas19 savaitės
TOMIJUS20 savaitės
Jaunelis35 savaitės
lanis35 savaitės
And2s36 savaitės
Memento Mori41 savaitės
Quwqkibor44 savaitės
asirija47 savaitės
tomeem49 savaitės
weberiz53 savaitės
mRokass55 savaitės
kartoonas56 savaitės
grunskiz59 savaitės
Bruksnys59 savaitės

Informacija:


OS: Unknown
Naršyklė: Nežinoma
IP: 3.133.154.12
Naujienų: 529
Straipsnių: 235
Temų: 52,589
Postų: 522,539
Postų pask. parą: 0
Shout'ų pask. parą: 0
P.S.C. pask. parą: 0
Nuorodų kataloge: 13

Lankomumo Statistika

Peržiūrų šiandien: 22

Iš viso peržiūrų: 22948724

Prisijungti

REGISTRUOTIS
Nario vardas

Slaptažodis



Pamiršai slaptažodį?
Paprašyk naujo

Aktyvuoti save

Šaukykla

Jei norite rašyti žinutes, turite prisijungti.

Gizmis
2025 Kov. 15 14:03:50
OMG, smagu matyt sita puslapi veikianti

ozzWANTED
2024 Lap. 30 15:11:14
Taip, vis dar up šypsosi

MaFetas
2024 Lap. 13 22:11:57
hey how, geras dar veikiantis saitas?

Jaunelis
2024 Lie. 25 11:07:43
Oho vis dar veikia svetainė akinanti šypsen Šimtas metų, matau Šaukykloje nuostalgija. Smagu panaršyt po forumą ir pažiūrėt senas temas šypsosi

And2s
2024 Lie. 17 19:07:04
2008 pirmą kart čia patekau, man buvo 10m ir čia pramokau programavimo.. smagu skaityti senas žinutes, tokia nostalgija akinanti šypsen ačiū Ozz kad saugoji šitą kultūrinį reliktą šypsosi

Šaukyklos archyvas

Apklausa

Ar esate patenkinti lietuviško vertimo kokybe?

Taip!

Taip, bet yra ką taisyti (parašysiu komentaruose)

Ne

Norėdamas balsuoti turite prisijungti.
Archyvas
Reklama 400x60
CIKLAS + FOREACH()
Forumas | PHP-Fusion, WordPress, Shopify, PHP ir MySQL (PROGRAMAVIMAS) | Expert PHP, MySQL klausimai

Autorius: Kelmas Peržiūrų: 3861      Spausdinti temą
2010 Kov. 19 17:03:30          1 žinutė iš 10
Spausdinti pranešimą
Sveiki visi!

Berašant savo TVS iškilo problema kurios niekaip neįsprendžiu. Tai einam prie temos.

Turiu pasirašęs db_query() funkcija kuri ne tik atlieka UŽKLAUSA, bet ir sudaro CIKLA ir SUKEŠUOJA turinį.

$query = db_query(....);
$text = ....;

foreach ($query as $row) {
    $text .= $row['......'];
}

echo $text;



Toks kodas labai gerai suveikia.

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

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




O toks kodas neveikia! Iš niekur gaunu ne į tema klaida!

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/xxxxxxxxxx on line xxxxxx

Bet esmė, kad vistiek sudaro masyvą ir viskas OK. Tik plius išmeta šita klaidą. Įdomu dėl ko?

Visiems iškart ačiū už atsakymus!


Redagavo Kelmas 2010 Kov. 19 17:03:03
2010 Kov. 19 18:03:08          2 žinutė iš 10
Spausdinti pranešimą
O jei pamėgintum su while, o ne forearch:
while ($data = mysql_fetch_assoc($query))

nežino

2010 Kov. 19 18:03:58          3 žinutė iš 10
Spausdinti pranešimą
nbanba parašė:
O jei pamėgintum su while, o ne forearch:
while ($data = mysql_fetch_assoc($query))

nežino


Turiu pasirašęs db_query() funkcija kuri ne tik atlieka UŽKLAUSA, bet ir sudaro CIKLA ir SUKEŠUOJA turinį.

Kitaip tariant tavo ciklą jau seniai sudaro. Čia reikia labai įsiskaityti į mano variantą, kad suprastum.


Redagavo Kelmas 2010 Kov. 19 18:03:30
2010 Kov. 19 22:03:24          4 žinutė iš 10
Spausdinti pranešimą
o jei naudotum _fetch_array() ? visada jį naudoju ir jokių problemų. o dėl tavo atvejo, negali būt sql'e kažkokie neatitikimai? funkcija šita case-sensitive .

programavimo paslaugos pm. ieškau projekto.
2010 Kov. 19 22:03:32          5 žinutė iš 10
Spausdinti pranešimą
iBodom parašė:
o jei naudotum _fetch_array() ? visada jį naudoju ir jokių problemų. o dėl tavo atvejo, negali būt sql'e kažkokie neatitikimai? funkcija šita case-sensitive .


Tai jau antra kartą kartoju, kad jis ir yra naudojamas. Jus išviso žinot kas yra ciklas + kešavimas? juokiasi

db_query(QUERY, TIME = 0)
1) mysql_query()
2) mysql_fetch_assoc()
3) (TIME > 0 && QUERY != UPDATE/DELETE/INSERT) fopen/fwrite/flock/fclose

P.S tavo variantas nekeičia sitaucijos..


Redagavo Kelmas 2010 Kov. 19 22:03:57
2010 Kov. 19 22:03:17          6 žinutė iš 10
Spausdinti pranešimą
tai yra taip : viskas gerai, viską įvygdo, tik meta klaida? wtf?

programavimo paslaugos pm. ieškau projekto.
2010 Kov. 19 22:03:07          7 žinutė iš 10
Spausdinti pranešimą
iBodom parašė:
tai yra taip : viskas gerai, viską įvygdo, tik meta klaida? wtf?


Taip, tik ne klaidą, bet įspėjimą. Tik nesiūlykit variantu su "slepimu".

2010 Kov. 20 01:03:43          8 žinutė iš 10
Spausdinti pranešimą
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

BR#1, Most Wanted
Redagavo ozzWANTED 2010 Kov. 20 01:03:12
2010 Kov. 20 18:03:22          9 žinutė iš 10
Spausdinti pranešimą
Pabandysiu paaiškinti jums be jokiu funkcijų kaip pas manęs atliekamas šitas dalykas:

<?php
// ATSIMINKITE, ČIA TIK SUPAPRASTINTAS VARIANTAS!

// UŽKLAUSA
$query = mysql_query("SELECT SQL_CACHE * FROM `main_settings`");

// CIKLAS
while ($row = mysql_fetch_assoc($query)) {
  $data[] = $row;
}

// FOREACH'AS
foreach ($data as $info) {
  $settings[$info['settings_name']] = $info['settings_value'];
}
?>




Gal dabar aiškiau..


Redagavo Kelmas 2010 Kov. 20 18:03:29
2010 Kov. 29 19:03:21          10 žinutė iš 10
Spausdinti pranešimą
Problema seniai išspręsta, o tema rakinama. Įdomumo dėlei klaida buvo mano funkcijoje (reikėjo tik $query pervadinti į $result).

Peršokti į forumą: