Men istället för att ha en ekvation för alla,
så vill jag kunna göra så att scriptet räknar ut alla fält jag har .. ( totalt $row[1] - $row[21] och likaså $nrow[1] - $nrow[21] ) ...
** EDIT **
Jag har nu kortat ner det, och lagt in följande i varje tom TD .. men skulle helst undvika så mycket kod extra ..
<td><?php $result = (($nrow[6]-$row[6])/1000)*100; echo $result; ?></td>
LIMIT 0,1 betyder "hämta från och med den första raden (rad 0) och hämta max 1 rad". LIMIT 1,2 betyder "hämta från och med den andra raden (rad 1) och hämta max 2 rader". Den första frågan kommer därför alltid bara att returnera en rad. Därmed är det aningen fel att köra en while där. Och koden skulle inte funka vidare bra om du ökade antalet rader som fråga 1 returnerar. Du bör alltså köra $row = mysql_fetch_row($result); utan while.
Bara så du är medveten, koden räknar ut "nu minus förra tidpunkten" samt "nu minus förrförra tidpunkten". Inte "nu minus förra tidpunkten" samt "förra tidpunkten minus förrförra tidpunkten". Det är kanske så du vill ha det, men det tål att påpekas.
Edit: Inte alls så, förresten. Om koden ska funka som jag beskrev skulle du dessutom behöva köra ORDER BY xxx DESC. Som det ser ut nu är den gemensamma raden den tidigaste raden. Vad värdet är "nu" får du inte veta med den frågan.
Om de tidspunkter du vill jämföra alla ligger precis intill varandra i databasen räcker det med en fråga, som helt enkelt hämtar ut du tre översta raderna.
Du hämtar ut data med mysql_fetch_row istället för mysql_fetch_assoc. Det i kombination med att du inte anger en ordning på fälten, utan selectar *, gör att datat du hämtar ut kan hamna i oordning om du någon gång skulle infoga nya fält mellan de andra fälten.
Du delar först med 1000 och multiplicerar sedan med 100. Finns det någon anledning till att du inte bara delar med 10? Det är för övrigt inte så man räknar ut en förändring i procent. :)
Hur som haver barnen kär så rekommenderar jag något sådant här:
<?php
include("inc_db.php");
include("inc_math.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>DK Evolution Guide</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<?PHP
// Funktion för att räkna procent.
function percent($oldvalue, $newvalue){
// Om det gamla värdet är 0 kan förändringen inte uttryckas i procent.
if ($oldvalue == 0){
return "--";
$ratio = ($newvalue - $oldvalue) / $oldvalue; // Beräkna kvoten.
$percent = $ratio * 100; // Uttryck som procent.
return = number_format($percent, 1); // Formatera numret med en decimal.
}
// Fyll i motsvarande fältnamn i databasen på vänstersidan.
$fielddefs=Array(
'gearscore' => 'Raw Gearscore',
'sep1' => 'sep', /* Markera att en linje ska skrivas ut på denna plats. */
'hp' => 'HP',
'' => 'Average Item Level',
'sep2' => 'sep', /* Markera att en linje ska skrivas ut på denna plats. */
'' => 'Strength',
'' => 'Agility',
'' => 'Stamina',
'sep3' => 'sep', /* Markera att en linje ska skrivas ut på denna plats. */
'' => 'Damage',
'' => 'DPS',
'' => 'Attack Power',
'' => 'Speed',
'' => 'Haste',
'' => 'Hit Rating',
'' => 'Critical Rating',
'' => 'Expertise',
'' => 'Mastery',
'sep4' => 'sep', /* Markera att en linje ska skrivas ut på denna plats. */
'' => 'Armor',
'' => 'Dodge',
'' => 'Parry',
'' => 'Block',
'sep5' => 'sep', /* Markera att en linje ska skrivas ut på denna plats. */
);
$query = "SELECT * FROM primofamilia ORDER BY datum DESC LIMIT 0,3";
$result = mysql_query($query);
// Hämta ut den översta raden, dvs värdet "nu".
$row = mysql_fetch_assoc($result);
// Loopa ut övriga rader.
while($nrow = mysql_fetch_assoc($result)) {
// Skriv ut tabellhuvudet.
?>
<table width="600" class="centertext">
<tr>
<td> </td>
<td><?PHP echo $row['date']; ?></td>
<td><?PHP echo $nrow['date']; ?></td>
<td> </td>
</tr>
<tr>
<td width="300"> </td>
<td width="100">Tidigare</td>
<td width="100">Nu</td>
<td width="100">% ändring</td>
</tr>
<?PHP
// Skriv ut övriga fält.
foreach ($fielddefs as $dbkey => $friendlyname){
if ($friendlyname == 'sep'){
// Skriv ut en linje angiven i fältdefinitionen.
echo ' <tr><td colspan="5"><hr></td></tr>';
} else {
// Skriv ut fält med ett värde.
?>
<tr>
<td><?PHP echo $friendlyname; ?></td>
<td><?PHP echo $nrow[$dbkey]; ?></td>
<td><?PHP echo $row[$dbkey]; ?></td>
<td><?PHP echo percent($nrow[$dbkey], $row[$dbkey]); ?></td>
</tr>
<?PHP
} // if
} // foreach
echo '</table>';
} // while
?>
</body>
</html>
Du har helt rätt, min uträkning var inte rätt ...
1000 stod kvar sen jag hade fasta värden i uträkningen,
rätt skall vara såhär ...
[kod]
function math() {
$change = $nrow[4]-$row[4];
$divide = $change/$row[4];
$result = $divide*100;
echo $result;
}
Men ja .. det blev ju fel ändå .. haha ...
Jag får inte din kod att funka, ska felsöka när jag är hemma igen