21. januar 2003 - 19:36Der er
17 kommentarer og 1 løsning
Regne gemensnittet ud?
Hej Jeg har lavet en lille vote fra 1-5 (det er i et tagwall) men hvordan gør jeg så den regner gemensnittet ud og skriver det på siden?
<?PHP $limit=intval($limit); // Sørger for at limit kun kan være tal if(!$limit) $limit=15; // Hvis limit var tom eller ikke var et tal, sætter vi den til 15 $foresp = mysql_query("SELECT navn, mail, dato, besked, vote FROM tagwall ORDER BY nr DESC LIMIT $limit") or die ("Fejl X: ".mysql_error()); while($row = mysql_fetch_array($foresp)) { $stjerner=''; // Her tæller vi op til og med antallet af stemmer for($i=0;$i<$row['vote'];$i++) { $stjerner.='<IMG src="stjerne_on.gif">'; } $i++; // Her udfylder vi resten af pladserne, til og med 5 for($i=$i;$i<=5;$i++) { $stjerner.='<IMG src="stjerne_off.gif">'; } $msg = $row["besked"]; echo '<table border="0" width="744" style="border: 1px solid #000000;" align="center" cellspacing="0" cellpadding="0">'; echo '<tr><td bgcolor="#80BCFF" style="border-bottom: 1px solid #000000;"><div style="float:left;">'.$stjerner.'</div><div style="float:right;"><a href="mailto:'.$row['mail'].'">'.$row['navn'].'</a>|'.$row['dato'].'</div>'; echo "</td></tr><tr><td colspan='2' bgcolor='#B9E1FD'>"; echo nl2br($msg); echo "</td></tr>"; echo '</table><br>'; } ?>
Men noget ala dette burde virke: $foresp = mysql_query("SELECT vote FROM tagwall"); $vote_antal = mysql_num_rows($foresp); $antal = 0; while ($row = mysql_fetch_array($foresp)) { $antal = $antal + $row[antal]; }
mpj_86 >> hvis du sætter dig ind i din kode og forstår den godt nok til at indsætte det selv er en hel masse viden din :-)) (fx med hjælp fra hyppige opslag i http://dk.php.net/manual/en/ )
I stedet for at lave komplicerede udregninger af gennemsnittet, synes jeg at det er lidt lettere at bruge php's egen gennemsnitsmekanisme. Denne funktion viser gennemsnittet med en decimal:
$beta = mysql_query("SELECT AVG(karakter) AS grade FROM table ORDER BY nr DESC LIMIT $limit") or die(mysql_error()); list($grade) = mysql_fetch_row($beta); $grade = round($grade, 1);
Denne funktion skal indsættes inden i din while-løkke. echo "$grade";
Btw jakoba - hvis du alligevel gemmer to varible, hvorfor så ikke bare gemme antal stemt og total sum af votes - så kan man bare lægge til de to og dividere? :D
Og jeg må give de andre ret, mpj - læs manualen, et par tutorials, etc og lær at forstå din kode...det hjælper ;)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.