Jump to content
php.lv forumi

datubāzes ieraksti ar vienadiem ierakstiem


meem2

Recommended Posts

sveicinati,

tā ka esmu iesācejs lūdzu saudzigi izturaties ar mani :)

 

mana problema no datubazes izvelku rakstus un ieraksti var būt vienādi

$results=mysql_query("SELECT * FROM tabula");
while($rows = mysql_fetch_array($results))

 

1 | reizrekins

2 | saskaitisana

3 | dalisana

4 | reizrekins

5 | dalisana

 

un protams ieraksti atkartojas

 

kā lai es dabonu tā lai ieraksts neatkartojas?

mana doma ir tabut šādu tabulu, kurā ir sakotnejais nosaukums un apakša visi rezultāti:

 

reizrekins

1 | reizrekins

4 | reizrekins

saskaitisana

2 | saskaitisana

dalisana

3 | dalisana

5 | dalisana

 

Ceru, ka sapratāt ko domāju.

Link to comment
Share on other sites

vēl viens jautājums

 

tabula ar rezultatiem

id | name | r1 | r2 | r3 | r4 | r5
------------------------------------
1 | reizrekins | 1 | 2 | 3 | 4 | 5
2 | saskaitisana | 1 | 2 | 3 | 4 | 5
3 | dalisana | 1 | 2 | 3 | 4 | 5
4 | reizrekins | 5 | 4 | 3 | 2 | 1
5 | dalisana | 5 | 4 | 3 | 2 | 1

 

kad visu esmu salicis ka domaju ir

 

reizrekins
1 | reizrekins | 1 | 2 | 3 | 4 | 5
4 | reizrekins | 5 | 4 | 3 | 2 | 1

saskaitisana
2 | saskaitisana | 1 | 2 | 3 | 4 | 5

dalisana
3 | dalisana | 1 | 2 | 3 | 4 | 5
5 | dalisana | 5 | 4 | 3 | 2 | 1

 

kā lai pie virsraksta dabonu videjo aritmetisko, ja tas ir maz iespejams ;)

 

reizrekins | 3 | 3 | 3| 3 | 3
1 | reizrekins | 1 | 2 | 3 | 4 | 5
4 | reizrekins | 5 | 4 | 3 | 2 | 1
saskaitisana | 1 | 2 | 3 | 4 | 5
2 | saskaitisana | 1 | 2 | 3 | 4 | 5
dalisana| 3 | 3 | 3| 3 | 3
3 | dalisana | 1 | 2 | 3 | 4 | 5
5 | dalisana | 5 | 4 | 3 | 2 | 1

Edited by meem2
Link to comment
Share on other sites

Pamēģini apmēram šādi:

 

SELECT DISTINCT reekinu_kolonna, SUM( ( r1 + r2 + r3 + r4 + r5 ) / 5 ) as average FROM tabula GROUP BY reekinu_kolonna

 

PS: Izvairies lietot latviskus nosaukumus kodā, tai skaitā arī datubāžu laukos.

Link to comment
Share on other sites

Pamēģini apmēram šādi:

 

SELECT DISTINCT reekinu_kolonna, SUM( ( r1 + r2 + r3 + r4 + r5 ) / 5 ) as average FROM tabula GROUP BY reekinu_kolonna

 

PS: Izvairies lietot latviskus nosaukumus kodā, tai skaitā arī datubāžu laukos.

 

 

tie mani piemeri ir ka piemeri, datubaze viss ir uz anglisko.

 

bet īsti mani laikam nesaprati - tas vidējais jāvelk no dažādiem ierakstiem, nevis no viena ieraksta kolonnām

Link to comment
Share on other sites

Var taisīt šādi, bet ir noteikti arī labāks risinājums:

 

SELECT DISTINCT t.reekinu_kolonna, ( SELECT SUM( a.r3 ) FROM tabula a WHERE a.reekinu_kolonna = r.reekinu_kolonna ) AS sum_r3 FROM tabula t;

 

Un vari izdalīt ar count(r3) manuprāt un iegūt vidējo, bet shis risinājums būs pamatīgi lēns, ja datubāze ir liela un query jāizplidas regulāri + tas selects papildus select jāveic visām 5 kolonnām šajā gadījumā.

 

Es tev ieteiktu izvilkt vienkārši datus, iemest masīvā un tad php pusē to masīvu apstrādāt. Būs stipri ātrāk.

Edited by aaxc
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...