MySQL подсчитывает, как разделить эти два счета и результат эха - PullRequest
1 голос
/ 08 марта 2019

Я хочу разделить эти два счета, а затем повторить результат деления в таблице ['final_count'].Может кто-нибудь, пожалуйста, помогите мне исправить, где я иду не так ...

<table class='table table-bordered'>
<?php

    $connection = mysqli_connect("******", "******", "******", "******");
    if (!$connection) {
        die("Database connection failed: " . mysqli_connect_error());
    }

    $Date = '2019-03-11';
    $Win = 'Win';

$testsql="SELECT 
count(IF(betDate = '$Date', 1, 0)) AS bet_count,
count(IF(betDate = '$Date' AND result ='$Win', 1, 0)) AS win_count
 FROM bets";

$testresult = mysqli_query($connection, $testsql);

while ($testrow = mysqli_fetch_assoc($testresult))
{ 
    echo "<tr>";
echo "<td class='text-center'>".$testrow['final_count'] . "</td>";
echo "</tr>";
}

mysqli_close($connection);
?>
</table>

1 Ответ

1 голос
/ 08 марта 2019

Если вы просто хотите отобразить это:

{ 
    echo "<tr>";
    echo "<td class='text-center'>".($testrow['win_count']/$testrow['bet_count']). "</td>";
    echo "</tr>";
}

хотя я бы также улучшил ваш SQL-запрос:

$testsql="
SELECT
  COUNT(*) AS bet_count,
  SUM(IF(result = $Win, 1, 0)) AS win_count,
FROM test WHERE betDate = $Date
";

И еще одно замечание: если вы хотите научиться работать с MySQL и PHP, я настоятельно рекомендую вам изучить PDO вместо mysqli. Несмотря на то, что он кажется более сложным - он научит вас основам объектно-ориентированного программирования и некоторым полезным навыкам, связанным с работой с MySQL, таким как параметры (вопросительные знаки в примере ниже).

Например, ваш запрос в PDO будет

$sql = "
SELECT
  COUNT(*) AS bet_count,
  SUM(IF(result = ?, 1, 0)) AS win_count,
FROM test WHERE betDate = ?
";
$sth = $dbh->prepare($sql);
$sth->execute([$Win, $Date]);
$results = $sth->fetchAll();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...