Topic: Vieta tope pagal dvieju lenteliu duomenis

Sveiki. Vienoje lenteleje saugomi vartotoju nick,info ir pan. kitoje lenteleje yra tu vartotoju daiktu sarasai su ju kainomis,reikia padaryti topa kuris isvestu nickus ir ju turimu VISU daiktu verte is kitos lenteles. Kaip tai padaryti optimaliau? Nes dabar vos su 20 vartotoju db krauna virs pusantros sekundes puslapi localhoste.....
Stai kaip darau:

$nuskaitoma = mysql_query("SELECT * FROM vartotojai");

while($st = mysql_fetch_array($nuskaitoma)) {

$nick = $st[nick];
$verte = 0;
$h = mysql_query("SELECT * FROM daiktai WHERE kieno='$nick'");

while($arb = mysql_fetch_array($h)) {

$verte += $arb[verte];

}

$arr[] = array($verte,$nick);

}

rsort($arr);

$nuskaitymas = mysql_query("SELECT * FROM vartotojai LIMIT $nuo,$puslapiu_skaicius");

for($ii = $nuo; $stulpeliai = mysql_fetch_array($nuskaitymas); $ii ++) {

$x ++;

if($nuo == 0) {

$df = $x;

}
else
{

$df = $nuo + $x;

}

echo "[$df] <a href=\"\">{$arr[$ii][1]}</a> ({$arr[$ii][0]})";
echo "<br/>";

}

Re: Vieta tope pagal dvieju lenteliu duomenis

kodas - kaip nereiktų rašyt.
Pasidomėk geriau kas yra SQL JOIN'ai. Nes dabar tau visą darbą atlieka php, o turėtų mysql'as :)

Kiek maigyklių sudėvėjai ?

Re: Vieta tope pagal dvieju lenteliu duomenis

md5 wrote:

kodas - kaip nereiktų rašyt.
Pasidomėk geriau kas yra SQL JOIN'ai. Nes dabar tau visą darbą atlieka php, o turėtų mysql'as :)

Geras atsakymas... Tai isvis cia kas nors sukuria tema,iskart nusiusk i www.php.net tegu domisi pats...

Re: Vieta tope pagal dvieju lenteliu duomenis

na forumas yra skirtas užvedimui ant kelio, o ne paruošto sprendimo gavimui, nebent trūksta tik vos vos, kad būtų gerai...

MongoDB Certified Developer
MongoDB Certified DBA
Zend Certified Engineer

Re: Vieta tope pagal dvieju lenteliu duomenis

to Exploder: o pas tave turbut vietoj galvos kopustas (-; Zmogustau dave krypti ka reik pasiziureti, o tu jam akys draskai. Tai kodel mes tau privalom padeti?

P.S. tau apskritai reiktu pasiskaitineti MySQL dokumetacija, o tai programini kaip akmens amziuj

Re: Vieta tope pagal dvieju lenteliu duomenis

Neodan wrote:

to Exploder: o pas tave turbut vietoj galvos kopustas (-; Zmogustau dave krypti ka reik pasiziureti, o tu jam akys draskai. Tai kodel mes tau privalom padeti?

P.S. tau apskritai reiktu pasiskaitineti MySQL dokumetacija, o tai programini kaip akmens amziuj

Mokausi.. :)

Re: Vieta tope pagal dvieju lenteliu duomenis

Exploder wrote:
Neodan wrote:

to Exploder: o pas tave turbut vietoj galvos kopustas (-; Zmogustau dave krypti ka reik pasiziureti, o tu jam akys draskai. Tai kodel mes tau privalom padeti?

P.S. tau apskritai reiktu pasiskaitineti MySQL dokumetacija, o tai programini kaip akmens amziuj

Mokausi.. :)

Akis kabinėt ar programuot? :))

Re: Vieta tope pagal dvieju lenteliu duomenis

qutwala wrote:
Exploder wrote:
Neodan wrote:

to Exploder: o pas tave turbut vietoj galvos kopustas (-; Zmogustau dave krypti ka reik pasiziureti, o tu jam akys draskai. Tai kodel mes tau privalom padeti?

P.S. tau apskritai reiktu pasiskaitineti MySQL dokumetacija, o tai programini kaip akmens amziuj

Mokausi.. :)

Akis kabinėt ar programuot? :))

Programuot. Neturi ka pasakyt,tai nepostink be reikalo.

Re: Vieta tope pagal dvieju lenteliu duomenis

šiaip siūlau nepereiti prie asmeniškumų - čia ne vieta. Jeigu kam kyla kokie klausimai - pradžiai pasiskaitom taisykles (-; Visi jas turėjo perskaityti registruodamiesi. Svarbiausia, kad čia niekas niekam neprivalo padėti. Jeigu kažkam kažkas nepatiko - tiesiog ignoruokit ir bus viskas ok.

Re: Vieta tope pagal dvieju lenteliu duomenis

minde wrote:

šiaip siūlau nepereiti prie asmeniškumų - čia ne vieta. Jeigu kam kyla kokie klausimai - pradžiai pasiskaitom taisykles (-; Visi jas turėjo perskaityti registruodamiesi. Svarbiausia, kad čia niekas niekam neprivalo padėti. Jeigu kažkam kažkas nepatiko - tiesiog ignoruokit ir bus viskas ok.

:)

Re: Vieta tope pagal dvieju lenteliu duomenis

pabandyk:

SELECT *
FROM daiktai 
   LEFT JOIN vartotojai ON daiktai.kieno = vartotojai.nick
GROUP BY daiktai.kieno 
LIMIT 10

Re: Vieta tope pagal dvieju lenteliu duomenis

Lukas wrote:

pabandyk:

SELECT *
FROM daiktai 
   LEFT JOIN vartotojai ON daiktai.kieno = vartotojai.nick
GROUP BY daiktai.kieno 
LIMIT 10

Dekui ;)