PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Kokku arvestamine MySQLis
Postitaja: joker 2003-12-13 22:36:41
Mul on SQLi tabelis hunnik nimesid:

ID: 1 Name: Mari
ID: 2 Name: Mihkel
ID: 3 Name: Mari
ID: 4 Name: Janne
ID: 5 Name: Mari
ID: 6 Name: Mihkel
...

Tahan teada, kui palju on mul andmebaasis Marisid, Mihkleid, Jannesid, ... Ma ei tea, et kui palju on erinevaid nimesid andmebaasis!

Missugune peaks olema andmebaasi päring PHPs?

Väljund antud päringust ekraanile peaks välja nägema järgmine:

Nimi: Mari Punkte: 3
Nimi: Mihkel Punkte: 2
Nimi: Janne Punkte: 1
...

Brgrds,
Joker

Viimati muudetud: 13-12-2003 22:38:47
Muutja: joker
Põhjus:

RE: Kokku arvestamine MySQLis
Postitaja: webphp 2003-12-13 23:33:07
äkki see abiks:

$nimi='Mari';
$total = mysql_result(mysql_query("select count(id) as cnt from MinuTabel WHERE Name LIKE '".addslashes($nimi)."' "),0);
echo $total;
RE: Kokku arvestamine MySQLis
Postitaja: webphp 2003-12-13 23:52:24
ei süvenenud kohe su probleemi...

kindlasti saab ka otse MySQL päringuga asja lahendatud... kuid PHPs teeksin nii:

loed tsükliga - while ($row = mysql_fetch_array($sqlcmd)) arraysse,
tsüklisse paned tingimuse "kui eelmiste seas ei olnud siis lisame arraysse" - arrays otsimiseks kasuta nt array_search -i.

nyyd arrays ainult need, mis ei kordu...

... siis:
$n=0;
while (strlen($row[$n])){
$total = mysql_result(mysql_query("select count(id) as cnt from MinuTabel WHERE Name LIKE '".addslashes($row[$n])."' "),0);
echo $row[$n].' | '.$total.'<br>';
$n++;
}



... tuli veits kohmakas - kui suur tabel, siis läheb muidugi aeglaseks see tsüklis päringu tegemine ... aga põhimõtteliselt peaks töötama

RE: Kokku arvestamine MySQLis
Postitaja: cornholio 2003-12-15 12:17:29
TSITEERITUD:


... siis:
$n=0;
while (strlen($row[$n])){
$total = mysql_result(mysql_query("select count(id) as cnt from MinuTabel WHERE Name LIKE '".addslashes($row[$n])."' "),0);
echo $row[$n].' | '.$total.'<br>';
$n++;
}




mysql_query("SELECT Name, count(*) AS total FROM MinuTabel GROUP BY Name ORDER BY total");

nii vast mõtekam

Viimati muudetud: 15-12-2003 12:17:56
Muutja: cornholio
Põhjus:


Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0786280632019