---
title: "PHP stapeldiagram procentfel"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/168703-php-stapeldiagram-procentfel"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Tulork"
published: "2008-02-03T22:23:02.000Z"
updated: "2008-02-03T22:40:41.000Z"
replies: 2
views: 544
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/168703-php-stapeldiagram-procentfel"
---

# PHP stapeldiagram procentfel

## #1 — Tulork, 2008-02-03T22:23Z

Lite problem att få till procentsifforrna så att dem stämmer om man räknar ihop alla. Det är inget fel på värdena, det är bara det att jag helst inte vill skriva ut en massa decimaler.... det måste finnas ett sätt att lösa detta på.

så här ser det ut

```php
<?php
//antal staplar så att looparna körs rätt antal gånger
$staplar = 20;

function GetAntal($kategori){
$get = "SELECT COUNT(id) as antal FROM x WHERE x='$x";
$do = mysql_query($get) or die('ERROR 112');
$value1 = mysql_fetch_assoc($do);
return intval($value1['antal']);
}

?>
<div align="left" style="width:800px; margin-top:10px; color:#666666; font-size:13px;">
<img src="pic/dsgn/statistik_t.png" alt="" border="0" style="margin-top:10px; margin-bottom:5px; margin-left:10px;" />
<br />

<?php

//Alla kategorier
$kategori[0] = "x";
$kategori[1] = "x";
$kategori[2] = "x";
$kategori[3] = "x";
$kategori[4] = "x";
$kategori[5] = "x";
$kategori[6] = "x";
$kategori[7] = "x";
$kategori[8] = "x";
$kategori[9] = "x";
$kategori[10] = "x";
$kategori[11] = "x";
$kategori[12] = "x";
$kategori[13] = "x";
$kategori[14] = "x";
$kategori[15] = "x";
$kategori[16] = "x";
$kategori[17] = "x";
$kategori[18] = "x";
$kategori[19] = "x";
$kategori[20] = "x";

$GetKategori[0] = "x";
$GetKategori[1] = "x";
$GetKategori[2] = "x";
$GetKategori[3] = "x";
$GetKategori[4] = "x";
$GetKategori[5] = "x";
$GetKategori[6] = "x";
$GetKategori[7] = "x";
$GetKategori[8] = "x";
$GetKategori[9] = "x";
$GetKategori[10] = "x";
$GetKategori[11] = "x";
$GetKategori[12] = "x";
$GetKategori[13] = "x";
$GetKategori[14] = "x";
$GetKategori[15] = "x";
$GetKategori[16] = "x";
$GetKategori[17] = "x";
$GetKategori[18] = "x";
$GetKategori[19] = "x";
$GetKategori[20] = "x";

//Referenser i varje kategori
for($i = 0; $i <= $staplar; $i++){
$antal[$i] = GetAntal($GetKategori[$i]);
}

//räknar ut antal 
for($i=0; $i<=$staplar; $i++){
$sum +=$antal[$i];
}

$barH = 3; //Bestämmer höjden på staplarna

//Omvandlar värden till procent i form av 10.0%
for($i = 0; $i <= $staplar; $i++){
$value[$i] = ($antal[$i] / $sum) * 100;
$value[$i] = number_format($value[$i], 1, '.', '');
}
?>

<table width="122" border="0" align="center" cellspacing="0" cellpadding="2" id="graph">
  <tr>
	<?php
	for($i=0; $i<=$staplar; $i++){
	?>
    <td width="20" valign="bottom" align="center" title="<?php echo $kategori[$i];?>: <?php echo $antal[$i];?> st">
	<?php	
	echo $value[$i];
	echo "%";
		?>
	<img src="pic/vb.gif" width="20" height="<?php echo $value[$i]*$barH; ?>" alt="" border="0" /><br />
	</td>
	<?php
	}
	?>
  </tr>
</table>
</div>
```

För att förklara ytterligare... I detta fallet så har vi 21 staplar och varje stapel får ett värde som består av x% som vi skriver ut ovanför staplarna. Räknar man då ihop alla dessa siffror ska det helst bli 100% totalt :)

Sen om ni undrar vad alla x gör så är det bara jag som tagit bort vad som stod där egentligen.

Permalänk: https://www.webforum.nu/p/168703

## #2 — aasah, 2008-02-03T22:26Z

Om det inte funkar med [round](http://se2.php.net/manual/sv/function.round.php) på värdena - bör ju inte bli mycket fel i alla fall, kan du kanske använda round på alla värden utom det sista, och där avrunda åt ett sådant håll att summan blir 100?

Om du vill ha hela procent är det ju bara att ta round(tal\*100)/100.

Permalänk: https://www.webforum.nu/p/2077370

## #3 — Tulork, 2008-02-03T22:40Z

Jo, det går ju att fixa det på det sättet... men helst ska procenten vara så korrekt som möjligt.. men man kanske får göra det du säger med att avrunda den sista tills det totala värdet är 100.

Permalänk: https://www.webforum.nu/p/2077372

---

Tråden på webben: https://www.webforum.nu/amne/php/168703-php-stapeldiagram-procentfel
