sql >> Database >  >> RDS >> Mysql

PHP-wiskunde op SQL-gegevens

Dus je zegt dat je

id data1 data2 data3
1  2.5   2.6   2.7
2  2.6   7.0   8.2
3  3.0   1.8   6.0

en u wilt het product van de hoofddiagonale invoer berekenen (zonder rekening te houden met de id kolom)?

Uit uw vraag wordt niet duidelijk of u dit wilt doen, of dat u gewoon data1 * data2 * data3 wilt berekenen voor elke rij.

Als het laatste het geval is:doe dit dan in MySQL. Voeg een extra kolom toe aan de kolomlijst in uw select statement:

SELECT
    id,
    ...,
    data1 * data2 * data3 AS product
FROM
    ...

Als het de eerste is:doe dit in PHP in plaats van MySQL. U kunt dit doen door een multidimensionale array op te zetten.

Je hebt waarschijnlijk code die er ongeveer zo uitziet:

while ( $row = mysqli_fetch_assoc($query_result) ) {
    echo $row['id'].' '.$row['data1'].' '.$row['data2'].' '.$row['data3'];
}

We zullen het als volgt veranderen:

$myarray = array();
while ( $row = mysqli_fetch_assoc($query_result) ) {
    $myarray[] = array($row['data1'], $row['data2'], ['data3']);
}

Als u nu het volgende toevoegt:

echo '<pre>';
var_dump($myarray);
echo '</pre>';
';

je zult zien dat we een tweedimensionale array hebben.

Als we nu het product van de diagonale items in die array willen vinden, kunnen we dit gebruiken:

$product = $myarray[0][0] * $myarray[1][1] * $myarray[2][2];



  1. Hoe kan ik dubbele vermeldingen in een tabel met gearchiveerde records wissen?

  2. Hoe kan ik een dynamische URL maken in php?

  3. MySQL-insert op dubbele sleutel; verwijderen?

  4. Entiteitsraamwerk voegt een extra voorwaarde toe aan de where-clausule