PHP Количество строк затем вычесть из статического числа

Я пытаюсь подсчитать количество строк в таблице с предложением where. Затем я хочу вычесть из статического числа (количество принадлежащих киосков — сколько киосков используется пансионерами).

Я проверил это через валидатор PHP, просмотрел stackoverflow на предмет чего-то подобного, и, хотя ошибок нет, все, что он делает, это показывает число 16. Это не вычитает количество строк из 16. Очевидно, я делаю это неправильно!

<?php
$result = mysqli_query("SELECT count(*) FROM boarders WHERE boardtype LIKE 'Stall%'");
$row = mysqli_fetch_row($result);
$num = $row[0];
echo (16 - $num);
?>

Я получил то, что хотел работать. Нет, это не mysqli и нуждается в обновлении к этому, но я еще не изучил это и буду (надеюсь) в какой-то момент. Я просто разбираюсь с кодом для себя, а не с чем-то важным. Приведенные ниже функции работают именно так, как я хочу, хотя сейчас все в порядке.

<?php
$query = "SELECT COUNT(*) AS stallboarders FROM boarders WHERE boardtype LIKE 'Stall%'";
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)){

echo (16-$row['stallboarders']);
}
?>

0

Решение

<?php
$query = "SELECT COUNT(*) AS stallboarders FROM boarders WHERE boardtype LIKE 'Stall%'";
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)){

echo (16-$row['stallboarders']);
}
?>
0

Другие решения

Несмотря на то, что вы ввели свой собственный ответ, как я уже упоминал в комментариях, вы можете отправить следующее, чтобы показать, где была допущена ошибка из вашего опубликованного кода.

$result = mysqli_query("SELECT
^ missing connection to DB

отсутствует параметр подключения к БД $result = mysqli_query($db_connection,"SELECT

и требуется с mysqli_query() http://php.net/manual/en/mysqli.query.php
(mysqli_ функции).

Примечание: Тестирование вашего ответа с моим собственным, дало те же результаты.

Очевидно, что вы смешивали MySQL API, не передавая соединение с БД на ваш запрос.

  • Эти разные API не смешиваются друг с другом.

Вот метод mysqli, который вы должны были использовать, и передача соединения с БД на ваш запрос.

<?php

$DB_HOST = 'xxx';
$DB_USER = 'xxx';
$DB_PASS = 'xxx';
$DB_NAME = 'xxx';

$Link = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if($Link->connect_errno > 0) {
die('Connection failed [' . $Link->connect_error . ']');
}

$result = mysqli_query($Link,"SELECT count(*)
FROM boarders WHERE boardtype LIKE 'Stall%'");
$row = mysqli_fetch_row($result);

// will return 14 with 2 rows in table
$num = $row[0]; // id is int

// debug test
// will return 16
// $num = $row[1]; // boardtype is varchar

// will echo 14 with 2 rows in table
echo (16 - $num);

$row[0] должен быть int введите, чтобы получить правильные результаты.

0

По вопросам рекламы [email protected]