Можно ли получить результат подсчета sql, присвоенный переменной php?

0

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

//code for connecting to database
$query = "SELECT COUNT(*) FROM 'user_table' WHERE 'username' = 'John12'";
$result = mysql_query($query);
if(!$result) die($db->error);

Теперь код выше после запуска запроса должен возвращать 1, в случае, когда поле имени пользователя уникально, и будет только один экземпляр этого результата запроса. Другой пример:

//code for connecting to database
$query = "SELECT COUNT(*) FROM 'user_table' WHERE 'username' = 'John12' AND 'username' = 'Paula25'";
$result = mysql_query($query);
if(!$result) die($db->error);

Теперь приведенный выше код после запуска запроса должен вернуть 2. У меня возникли проблемы с назначением результата переменной php. Он всегда говорит что-то о невозможности конвертировать mysql_result в int. Я тоже видел много форумов, и никто из них мне не помог. Я нашел онлайн, что MariaDB возвращает тип BIGINT для запроса count. Я хотел бы иметь возможность сделать что-то вроде этого:

$count = $result->result;
if($count < 2) { 
  // do this if true
} else {
  // do this
}
  • 0
    шаг 1, прекратите использовать mysql_*
  • 0
    ... ГДЕ username = 'John12' И username = 'Paula25' перенастраивает 2, что было бы изящным фокусом?
Показать ещё 3 комментария
Теги:

2 ответа

0
Лучший ответ

Вы можете использовать mysql_fetch_row:

//code for connecting to database
$query = "SELECT COUNT(*) FROM 'user_table' WHERE 'username' = 'John12' OR 'username' = 'Paula25'";
$result = mysql_query($query);
if(!$result) die($db->error);    

$row = mysql_fetch_row($result);

$count = $row[0];

if($count < 2) { 
  // do this if true
} else {
  // do this
}

Поскольку @mith упоминается в комментарии, если вы только начинаете свой проект, лучше используйте mysqli, чем mysql. Прочтите: MySQL против MySQLi при использовании PHP

0

вы должны получить возвращаемое значение с помощью $ result [count()], потому что вы выбираете имя столбца как count().

или вы можете использовать псевдоним типа

$ query = "SELECT COUNT (*) AS count...

затем

$ result = mysql_query ($ query); $ result ['count'] = ваше значение //2

если вы не хотите использовать псевдоним

$ result ['COUNT (*)'] = ваше значение //2

поэтому вам нужно сделать что-то подобное в вашем случае

if($result['COUNT(*)'] < 2) { 
  // do this if true
} else {
  // do this
}

или же

$ count = $ result ['COUNT (*)'];

if($count < 2) { 
  // do this if true
} else {
  // do this
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню