У меня есть следующий код для отображения числа, если записи в таблице всегда отображают 1, даже если я изменяю имя столбца на другое имя столбца;

Однако тот же запрос в рабочей среде отображает правильное количество записей. Смотрите скриншот;

workbench

$con = @mysqli_connect( "localhost:3306", "root", "P@ssw0rd", "classicmodels" ) or die ("Couldn't connect to server");
    //get total number of records
    $query = "SELECT count(checkNumber) FROM payments";
    $result = mysqli_query ( $con, $query) or die ("Couldn't execute SELECT query: ". mysqli_error($con));
    $rec_count = mysqli_num_rows($result);

    echo $rec_count."<br>";
0
Amali Perera 26 Май 2016 в 17:19

3 ответа

Лучший ответ

Это потому, что num_rows отображает количество выбранных вами строк, в данном случае это только одна. Вы должны получить поле count(checkNumber) из базы данных, которое содержит количество строк, а не функцию num_rows.

Лучше считать это переменной, например COUNT(someField) as FieldCount

5
Erik Terwan 26 Май 2016 в 14:22

В результатах всегда будет только одна строка. Вы должны получить запись, а затем повторить $ record ['count (checkNumber)']. (Псевдонимы сделают индексацию более интуитивной).

1
Jared Beekman 26 Май 2016 в 14:21

Вы используете функцию подсчета в запросе, и она даст ответ в одной строке. чтобы получить правильный ответ, вы можете удалить count () и оставить остальную часть кода без изменений. См. Следующий код.

  $con = @mysqli_connect( "localhost:3306", "root", "P@ssw0rd", "classicmodels" ) or die ("Couldn't connect to server");
//get total number of records
//I have Removed COUNT() from query
$query = "SELECT checkNumber FROM payments";
$result = mysqli_query ( $con, $query) or die ("Couldn't execute SELECT query: ". mysqli_error($con));
$rec_count = mysqli_num_rows($result);

echo $rec_count."<br>";

ИЛИ

Вы можете использовать функцию count () и получить правильный ответ следующим образом.

$con = @mysqli_connect( "localhost:3306", "root", "P@ssw0rd", "classicmodels" ) or die ("Couldn't connect to server");
//get total number of records
$query = "SELECT count(checkNumber) FROM payments";
$result = mysqli_query ( $con, $query) or die ("Couldn't execute SELECT query: ". mysqli_error($con));
while($rec_row = mysqli_fetch_row($result))
{
    $rec_count=$rec_row['count(checkNumber)'];
}

echo $rec_count."<br>";
1
Hraday Joshi 26 Май 2016 в 14:31