Я пытаюсь подсчитать количество строк в таблице с предложением 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']);
}
?>
<?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']);
}
?>
Несмотря на то, что вы ввели свой собственный ответ, как я уже упоминал в комментариях, вы можете отправить следующее, чтобы показать, где была допущена ошибка из вашего опубликованного кода.
$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, не передавая соединение с БД на ваш запрос.
Вот метод 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
введите, чтобы получить правильные результаты.