Скажем, что у нас есть следующий запрос:
SELECT DISTINCT COUNT(`users_id`) FROM `users_table`;
этот запрос вернет число пользователей из таблицы. Мне нужно передать это значение переменной PHP. Я использую это:
$sql_result = mysql_query($the_query_from_above) or die(mysql_error()); if($sql_result) { $nr_of_users = mysql_fetch_array($sql_result); } else { $nr_of_users = 0; }
пожалуйста, исправьте мой код, где вы считаете необходимым.
Это лучший подход. Как вы рекомендуете это делать?
Как это:
// Changed the query - there's no need for DISTINCT // and aliased the count as "num" $data = mysql_query('SELECT COUNT(`users_id`) AS num FROM `users_table`') or die(mysql_error()); // A COUNT query will always return 1 row // (unless it fails, in which case we die above) // Use fetch_assoc for a nice associative array - much easier to use $row = mysql_fetch_assoc($data); // Get the number of uses from the array // 'num' is what we aliased the column as above $numUsers = $row['num'];
Кроме того, альтернатива с использованием mysqli, которую вы должны использовать в любом случае для интерполяции параметров:
$statement = $connection->prepare($the_query_from_above); $statement->execute(); $statement->bind_result($nr_of_users); $statement->fetch();