喜欢jQuery sum值

I like to sum all values with script but get it the result: total:NaN (need to sum all columns except the first column)

The code PHP and script are in the same file and this is my code:

For php:

<table id="table">
 <thead class="thead-dark">
 <tr class="titlerow">
 <th>Col1</th>
 <th>Col2</th>
 <th>Col3</th>
 <th>Col4</th>
 <th>col5</th>
 </tr>
 </thead>
 <tbody>
 <tr>
 <?php
 include("conn.php");

$result = mysql_query("SELECT id,name,col1,col2 FROM table GROUP BY name");

 while($test = mysql_fetch_array($result))
 {
 $id = $test['id']; 
 echo"<td class='rowDataSd'>".$test['col1']."</td>";
 echo"<td class='rowDataSd'>".$test['col1']."</td>";
 echo"<td class='rowDataSd'>".$test['col2']."</td>";
 echo"<td class='rowDataSd'>".$test['col2']."</td>";
 echo"<td class='rowDataSd'>".$test['col2']."</td>";
 echo "</tr>";
 }
 mysql_close($conn);
 echo '<tfoot>
    <tr class="totalColumn">
        <td>.</td> 
        <td class="totalCol">Total:</td> 
        <td class="totalCol">Total:</td> 
        <td class="totalCol">Total:</td> 
        <td class="totalCol">Total:</td> 
        <td class="totalCol">Total:</td> 
    </tr>
</tfoot>';
 ?>
</table>

For script:

   var totals=[0,0,0];
    $(document).ready(function(){
        var $dataRows=$("#table tr:not('.totalColumn, .titlerow')");
        $dataRows.each(function() {
            $(this).find('.rowDataSd').each(function(i){        
                totals[i]+=parseInt( $(this).html());
            });
        });
        $("#table td.totalCol").each(function(i){  
            $(this).html("total:"+totals[i]);
        });
    });

Where is the exact problem?

I'm not sure, but... as far as i know, and maybe i'm wrong (would be happy to get advise on that) => mysql_fetch_array and mysql_query is kinda "dead" and instead, today you should use: mysqli_fetch_array and mysqli_result (see the additional i), and that depends on the version you are running on your server that is. Does the query works for you?. If not, i would defently look into that.

See an example here:

<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

// Perform queries
mysqli_query($con,"SELECT * FROM Persons");
mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age)
VALUES ('Glenn','Quagmire',33)");

mysqli_close($con);
?> 

I wouldn't sum them with jQuery at all. I would do it in PHP:

...
<tr> <!--- this tr is out of place, needs to be in the loop -->
 <?php
  //include("conn.php"); this should be require as it's necessary
  //include will ignore missing files, require with throw an error
  //this code will not work without that file, so let PHP tell you
  //when it goes missing, instead of wondering why your DB calls don't work

  require "conn.php"; // inlude/require are not functions they will work with (...) but it's not best practice.

 $result = mysql_query("SELECT id,name,col1,col2 FROM table GROUP BY name");

//define default values for increment without errors
$totals = ['col1'=>0,'col2'=>0,'col3'=>0,'col4'=>0,'col5'=>0];
while($test = mysql_fetch_array($result))
{
   $id = $test['id']; 
   echo "<tr>";  //-- this is the tr from above --
   //use a loop if the HTML is all the same
   for($i=1;$i<=5;++$i){
     $key = 'col'.$i;
     echo"<td class='rowDataSd'>".$test[$key]."</td>";
     //simply add the values on each iteration (sum)
     $totals[$key] += $test[$key];
   }
   echo "</tr>"; //-- without fixing the open tag as mentioned above, your HTML would be messed up --
} 
 mysql_close($conn);
 echo '<tfoot>';
    echo '<tr class="totalColumn">';
      echo '<td>.</td>';
    for($i=1;$i<=5;++$i){ 
       echo '<td class="totalCol">total:'.$totals['col'.$i].'</td>';
    } 
    echo '</tr>';
 echo '</tfoot>';
 ...

If this stuff doesn't change dynamically (which it doesn't seem to), there is no need to do it with Javascript.

You can also reduce the code by using a simple for loop.

Cheers!