Вопрос кодирования PHP

0

Как я могу получить значение count из запроса MySQL MySQL, используя PHP.

Вот мой код MySQL.

$dbc = mysqli_query($mysqli,"SELECT COUNT(*) FROM((SELECT users_friends.id
                            FROM users_friends
                            INNER JOIN users ON users_friends.user_id = users.user_id
                            WHERE users_friends.user_id = 1 
                            AND users_friends.friendship_status = '1')
                            UNION
                            (SELECT users_friends.id
                            FROM users_friends
                            INNER JOIN users ON users_friends.friend_id = users.user_id
                            WHERE users_friends.friend_id = 1
                            AND users_friends.friendship_status = '1')) as friends");
  • 0
    Что вы используете для подключения к базе данных? Просто семейство функций mysql_query ?
  • 0
    Там нет PHP-кода там. Вам нужно объяснить, показать код PHP, который не работает, и объяснить, как вы ожидаете, что он будет работать, если мы хотим вам помочь.
Показать ещё 5 комментариев
Теги:

4 ответа

1

используя SQL_CALC_FOUND_ROWS, необходимо упростить:

$dbc = mysqli_query($mysqli,"SELECT SQL_CALC_FOUND_ROWS users_friends.id
                        FROM users_friends
                        INNER JOIN users ON users_friends.user_id = users.user_id
                        WHERE users_friends.user_id = 1 
                        AND users_friends.friendship_status = '1'
                       ");

то потом

$rs = mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
$rec = $rs->fetch_array();
$count = $rec[0];

Этот метод вернет количество записей, соответствующих запросу, игнорируя любой оператор LIMIT, тогда как использование $rs->num_rows даст вам только количество фактически возвращенных записей. Зависит от того, который вы хотите.

  • 0
    Хорошо, я еще не использовал это сам. Справочное руководство: dev.mysql.com/doc/refman/5.0/en/…
  • 0
    Использование SQL_CALC_FOUND_ROWS неэффективно. Если вы не хотите считать результаты и извлекать их, лучше использовать функцию COUNT (*).
Показать ещё 2 комментария
0

Ваш запрос должен выглядеть как SELECT COUNT (*) как numThings FROM xxx

С помощью numThings вы ссылаетесь в PHP:

$result = mysql_query("SELECT COUNT(*) as `numThings` FROM xxx");
$row = mysql_fetch_assoc($result);
$count = $row['numThings'];
0

Предполагая, что вы правильно подключены к серверу MySQL, и ваш запрос выполнен правильно, вы можете использовать следующий код:

$values = mysql_fetch_row($dbc);
$count = $values[0];
0
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", mysqli_num_rows($result));

    /* free result set */
    mysqli_free_result($result);

http://us.php.net/manual/en/mysqli.query.php

Ещё вопросы

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