Zadejte hledaný výraz...

zátěž databáze

Jan Matoušek
verified
rating uzivatele
(12 hodnocení)
29. 8. 2010 00:23:31
Ahoj, vymyslel jsem si, že bych si na web udělal aukci o dárkové předměty za klubové body. Teď jsem řešil to, až aukce skončí, aby to vrátilo body těm, co nevyhrály.
Předem chci upozornit, že nejsem žádný porfík a dělám to jen jako koníček.
Vymyslel jsem tento skript. Jde mi o to najít největší příhozy každého uživatele. ,Ale nevím jestli to nezatíží moc databázi (kdyby bylo například 1000 uživatelů co přihodilo, tak by to bylo přes 1000 dotazů na db)
$data2 = mysql_query("SELECT IDPR FROM AUKCEPRIHOZY where AUID='$aid' and IDPR!=$vyherce ORDER BY IDPR ");
$pocet_data2=mysql_num_rows($data2);
if($pocet_data2!=0)
{
$noveid = Array(0);
while($vypsat2 = mysql_fetch_array($data2))
{
$nalezeno=false;
foreach ($noveid as $noveid2)
{
if($noveid2==$vypsat2){$nalezeno=true;}
}
if(!$nalezeno){$noveid[]=$vypsat2;}
}
}
sort($noveid);
foreach ($noveid as $noveid3)
{
if($noveid3!=0)
{
$data3 = mysql_query("SELECT PRIHOZ FROM AUKCEPRIHOZY where AUID='$aid' and IDPR=$noveid3 ORDER BY PRIHOZ DESC LIMIT 1");
$vypis3=mysql_fetch_array($data3);
echo $noveid3.': '.$vypis3.'
';
}
}
29. 8. 2010 00:23:31
https://webtrh.cz/diskuse/zatez-databaze#reply549991
Pro inspiraci: http://www.plus2net.com/sql_tutorial/sql_max.php
A nezapomenout na indexy ;)
29. 8. 2010 07:18:09
https://webtrh.cz/diskuse/zatez-databaze#reply549990
qwertr
verified
rating uzivatele
(7 hodnocení)
29. 8. 2010 07:53:39
Pokial som spravne pochopil, tak pre kazdeho uzivatela v kazdej jeho aukcii chces vratit maximalny prihoz.
Ja by som to riesil takymto nejakym SQL prikazom
select max(PrihodSuma) as maxPrihoz, IdUz, IdAukcia from Aukcia group by IdUz, IdAukcia
pricom tabulka Aukcia obsahuje zoznam prihodzov na jednotlive aukcie, IdUz je identifikacia uzivatela ktory prihadzuje a IdAukcia je id aukcie na ktoru sa prihadzuje a prihodSuma je suma, ktora sa prihadzuje
Samozrejme sa to musi obmedzit este,aby do toho nebralo vytazneho uzivatela a len pre zadefinovane aukcii
prie tieto zdrojove data
insert into Aukcia (IdUz, IdAukcia, PrihodSuma) values (1, 1, 10)
insert into Aukcia (IdUz, IdAukcia, PrihodSuma) values (1, 1, 20)
insert into Aukcia (IdUz, IdAukcia, PrihodSuma) values (2, 1, 15)
insert into Aukcia (IdUz, IdAukcia, PrihodSuma) values (2, 1, 25)
insert into Aukcia (IdUz, IdAukcia, PrihodSuma) values (1, 2, 12)
insert into Aukcia (IdUz, IdAukcia, PrihodSuma) values (1, 2, 18)
insert into Aukcia (IdUz, IdAukcia, PrihodSuma) values (3, 2, 30)
insert into Aukcia (IdUz, IdAukcia, PrihodSuma) values (3, 2, 40)
ja takyto vysledok
maxPrihoz idUz idAukcia
20 1 1
25 2 1
18 1 2
40 3 2
29. 8. 2010 07:53:39
https://webtrh.cz/diskuse/zatez-databaze#reply549989
Jan Matoušek
verified
rating uzivatele
(12 hodnocení)
29. 8. 2010 09:50:24
Díky:-) máte tam reputace. Jako vždy jsem na to šel moc složitě :-)
29. 8. 2010 09:50:24
https://webtrh.cz/diskuse/zatez-databaze#reply549988
kaspa
verified
rating uzivatele
(5 hodnocení)
29. 8. 2010 11:36:23
Napsal Paradiso;560815
Díky:-) máte tam reputace. Jako vždy jsem na to šel moc složitě :-)
Skoro každý, kto začína s DB sa všetko snaží riešiť programovo :) Do budúcnosti sa snaž pokiaľ možno vytiahnuť dáta jedným selectom - to by ťa mohlo dostať na správnu cestu :)
29. 8. 2010 11:36:23
https://webtrh.cz/diskuse/zatez-databaze#reply549987
Pro odpověď se přihlašte.
Přihlásit