while znotraj whila
 
potegnime 28. jun 2011 16:05:42 Pridružen od:
20. feb 2011
76 objav
17 9 4
#11

SlimDeluxe:


foreach($comments as $c)
{
// tukaj daj html kodo za komentar
}



nisem še srečal te vrste foreacha... kaj pomeni ta $c ? ga je potrebno definirat al kako ?


všeč(0) ni všeč(0) spam(0)
 
HeXeR 28. jun 2011 16:14:57 Pridružen od:
13. dec 2006
3268 objav
122 22 5
všeč(0) ni všeč(0) spam(0)
First rule of business, protect your investment.
 
potegnime 28. jun 2011 16:28:46 Pridružen od:
20. feb 2011
76 objav
17 9 4
#13

hvala ti HeXeR


všeč(0) ni všeč(0) spam(0)
 
rnk 28. jun 2011 20:21:56 Pridružen od:
27. avg 2010
48 objav
91 6 1
#14

SlimDeluxe:




rnk:

Znotraj loopov se ne raje ne daje težkih IO operacij - kar query je. Nalovdaj podatke, ki jih rabiš z enim ali dvema poizvedbama in potem obdelaj dato.




Težkih? Če imaš pravilen design baze in ne izvajaš kompliciranih stikov med tabelami z dosti podatkov bi temu rekel vse prej kot težka IO operacija.




Let me rephrase. Znotraj loopov se ne daje poizvedb, ki šibajo na tak bottleneck kot je disk, če le ni treba (kar pa ponavadi ni).


všeč(1) ni všeč(0) spam(0)
 
SlimDeluxe 28. jun 2011 21:08:45 Pridružen od:
29. apr 2010
1223 objav
1022 144 9
#15

Se strinjam, vendar se hkrati sprašujem, ali je bolje delati stik

novica x komentar

in imeti toliko večji rezultat v nenormalizirani obliki, kot pognati 10x query v smislu (pseudo koda):

result = select * from novica limit 10;

foreach(result as novica)

{

result2 = select * from novica where id = novica['id'] limit 10;

foreach(result2 as komentar)

{

novica['komentarji'][] = komentar;

}

}

Cool bi bilo, če bi dejansko imel nek benchmark (če bi se komu dalo narediti) :)

Čeprav če pomislim, zadeva je itak malo mimo, ker

1. za frontpage itak nikoli ne selectaš čisto vseh novic, glede komentarjev pa rabiš samo število (paginacija po komentarjih je ob ogledu novice).

2. uporabil bi object, db ali vsaj template caching



:)


všeč(0) ni všeč(0) spam(0)
Freelance Web Developer
 
schtr4jh 29. jun 2011 00:14:04 Pridružen od:
24. nov 2008
402 objav
322 33 4
#16

Primer za izpis novic, komentarjev (1:n), kategorije (1:n) in avtorja (1:n).




  1. query: Select id-jev vseh novic, ki jih želimo izpisat (sem sodijo vsi pogoji, limiti, order by ...). Te id-je shraniš v spremenljivko.


  2. query: Select tistih parametrov, ki jih potrebujemo za izpis novice, dodan pogoj 'WHERE id_novice IN (rezultat 1. querya)' ter order by field. Tu prejmeš tudi recimo avtorja in kategorijo - uporabiš join.


  3. query: Select vseh komentarjev, order by field (link zgoraj).




V prvi zanki se nato sprehajaš čez rezultate 2. zahtevka, v drugi (notranji) zanki pa skozi rezultate 3. zahtevka dokler se ujemata id-ja novic. Vsi queriji so izvedeni zunaj zank, eden za drugim.



Če ne potrebuješ izpisa komentarjev, ampak samo število komentarjev, odstraniš prvi in zadnji zahtevek ter seveda notranjo zanko, v drugem zahtevku pa dodaš še join tabele komentarjev ter count. Najbolje pa bi bilo, da uporabljaš trigger (oziroma to rešiš programsko) ter tabeli novic dodaš atribut za število komentarjev, ki ga spreminjaš ob vnosu ali izbrisu komentarja.


všeč(1) ni všeč(0) spam(0)
 
potegnime 29. jun 2011 21:04:41 Pridružen od:
20. feb 2011
76 objav
17 9 4
#17

hvala za te odgovore... zej me pa zanima kak bi pravo embed kodo (npr z youtuba) v print, oziroma spremenljivko...


$koda = $row['embed'];
print $embed;

zej mi pač sam prenese kodo iz baze, ne znam pa videa prikazat na strani...


všeč(0) ni všeč(0) spam(0)
 
mtance 30. jun 2011 10:30:08 Pridružen od:
27. jan 2008
508 objav
198 16 1
#18

print $koda; in ne print $embed.



Priporočam echo $koda;, namesto print-a.


všeč(0) ni všeč(0) spam(0)
 
mprose7 30. jun 2011 10:34:02 Pridružen od:
18. mar 2008
911 objav
293 39 6
#19

znas mogoce v par besedah razlozit bistveno razliko med print in echo

(malo off..)


všeč(0) ni všeč(0) spam(0)
Oprema stanovanj in izris 3d objektov na: Notranja oprema
Trgovina z lesnim hobi programom: Razrez iverala
 
Vini 30. jun 2011 10:50:25 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#20

mprose7, takole nekako je:



echo sprejme več parametrov, print le enega. print vrača vrednost (vedno 1), echo ne. Načeloma je echo hitrejši, ampak ne prav bistveno. Občutno hitrejši je echo le v primeru, če uporabljaš več parametrov, ker pri echo concatanje stringov ni potrebno, s print bi pa to moral početi. Še vedno se pa te razlike v praksi tako malo poznajo, da je uporaba echo/print bolj kot ne stvar okusa. :)


všeč(4) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se