За последние 24 часа нас посетили 16990 программистов и 1293 робота. Сейчас ищут 1374 программиста ...

Выести кол-во всех ID в бд

Тема в разделе "Вопросы от блондинок", создана пользователем Maxer, 3 ноя 2006.

  1. Maxer

    Maxer Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    93
    Симпатии:
    0
    Вот есть бд пусть будет BAZA
    конектимся какой запрос надо чтобы выести кол во всех ID
    ТАМ там
    ID
    1
    2
    3
    4
    5
    6
    7
    10
    12
    13 ВОТ какой запрос надо?
    $result = mysql_query(...
     
  2. Mavir

    Mavir Guest

    С помощью функции COUNT
     
  3. Maxer

    Maxer Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    93
    Симпатии:
    0
    $result=mysql_num_rows(mysql_query("SELECT * FROM BAZA"));
    вот ура работает. уже нашел так.
     
  4. вот дилемма.
    то ли сразу по шее надавать, то ли оставить, как есть, и пусть на работающием сайте налетит на грабли.
    Я думаю, чтл правильнее - второе. Оно действеннее будет
     
  5. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    СOUNT это не функция (функция это в РНР) и причём уверен что именно это Maxer сейчас и пытается использовать как ты ему и сказал, а между тем это в корне не правильно...

    Maxer
    Под словом COUNT он имел в виду именно COUNT
    PHP:
    1. <?php
    2. $result=mysql_num_rows(mysql_query("SELECT COUNT(*) FROM BAZA"));
    3. ?>
     
  6. Maxer

    Maxer Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    93
    Симпатии:
    0
  7. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Mavir
    Хорошо это mysql-функция, но от этого не легче.

    Ага, и микроскопом тоже гвозди забивать можно.
     
  8. Davil

    Davil Guest

    В PHP это функция, в MySQL это оператор.
     
  9. Mavir

    Mavir Guest

    Оператор это, например, SELECT, INSERT и т.д.

    http://php.ru/mysql/ - на странице ищем слово "оператор"
     
  10. Davil

    Davil Guest

    Да да. Я перепутал. Прошу прощения. COUNT - это функция.
     
  11. vb

    vb Активный пользователь

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg
    Не ссорьтесь,
    1. COUNT () в mysql - это математическая функция
    2. Оба подхода в подсчете количества кривые потому что запрос идет выборка делается по всем полям * в целях оптимизации, лучше делать выборку по первичному ключу.
    3. Если используете COUNT, то опять же в целях оптимизации лучше делать LIMIT 1
    4. mysql_num_rows на мой взгляд хуже, потому что php передается указатель на результат выборки всей таблицы, при больших таблицах - это зло.

    vb
     
  12. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    При больших это DOS (конечно не такой страшный как MSDOS, но тоже ничего хорошего)
     
  13. то, что указано в в скобках, большого значения не имеет. там можно писать константу, можно звёздочку, можно ключ. вопрос в том, что написано во where.
    Если там не первичный ключ, то в скобочках он всё равно не поможет.
    Что-то это смахивает на перестраховку. не могу себе представить случая, когда это могло бы понадобиться.
    На самом деле это гораздо хуже, поскольку передаётся таки не указатель, а сами данные.

    а так всё верно =)
     
  14. vb

    vb Активный пользователь

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg
    В этом частном случае согласен, особого значения нет.
    Значение имеет, и не маленькое в сочетании с использованием GROUP BY или DISTINCT. Поэтому в целях дисциплины и избежания глюков при дальнейшем редактировании запроса я всегда указываю поле.

    Да, согласен, ступил.

    Понадобится, если мы добавим в выборку поле, хотя конечно к самим агрегатным функциям это не имеет значения.
    хехе, игра слов да и только :)

    $result = mysql_query(...);
    print_r($result); //:)

    Спасибо за комментарии :)
     
  15. Приведённый пример не имеет не малейшего отношения к вопросу. это всего лишь синтаксис API.
    Я говорил не о переменной $result, а о клиенте MySQL
    Речь идёт о том, где собираются данные - на стороне SQL сервера или на стороне SQL-клиента.

    И игрой слов это будет только до тех пор, пока клиент и сервер лежат на одной машине.
    Или до тех пор, пока не станет заметна разница между объёмом памяти, выделенным SQL серверу и веб серверу.
     
  16. если мы добавим в выборку поле, то количество возвращаемых строк не изменится.
    Оно изменится только если мы добавим оператор группировки, а это будет уже совсем другой запрос.
    В общем, я считаю, что это излишняя перестраховка.