Вопрос № 152058: Добрый вечер Я хотел сделать подсчет колличества комментариев в новости, и создал функцию <div style="margin:15px; margin-top:10px"><div><b><font color="gray">Код:</font></b></div><pre style="margin: 0px; padding: 6px; border: 1px inset; wi...
Вопрос № 152.058
Добрый вечер Я хотел сделать подсчет колличества комментариев в новости, и создал функцию
Код:
function counted($select,$count,$id) { $sql="SELECT count(*) FROM $select WHERE $count='$id'"; $result2=mysql_query($sql); $amount2=mysql_num_rows($result2); return
$amount2; }
И поместил ее в ядро CMS...Однако после подлкючения функции к нужным файлам она показывает только 1 Не подскажите как исправить эту проблему? выводил я таким образом $counter=counted("anime_comments","comment_ct_id",$data[id]); Находилось у меня в while{}
Отвечает: Товарищ Бородин
Здравствуйте, Герасимов Виталий Владиславови! А зачем Вы считаете в запросе количество записей? Зачем в запросе у Вас содержится вызов функции count? Она считает Вам количество выбранных записей, выдает результат в виде одной строки, а mysql_num_rows, естественно, полагает, что найдена всего одна строка. Думаю, что лучше count убрать. При этом я хочу отметить, что структура таблиц, в которых Вы храните комментарии, остается неясной. Как Вы определяете принадлежность комментария к определенной
новости? А зачем выбирать для подсчета комментариев все поля, скажите мне на милость? Гораздо лучше выбрать одно поле. Самый разумный вариант - выбрать поле, которое является первичным ключом таблицы, в котором сидят идентификаторы комментариев или что у Вас там, я уж потерялся... С уважением, Товарищ Бородин
Ответ отправил: Товарищ Бородин (статус: Профессионал) Россия, Новосибирск Тел.: +7-923-245-3366 ICQ: 346988855 ---- Ответ отправлен: 27.11.2008, 18:43
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 236897 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Пасиба ^^
Отвечает: Прим Палвер
Здравствуйте, Герасимов Виталий Владиславови!
Думаю, при такой постановке задачи Вам нужно выходить на результат $row['count(*)'], а не считать количество строк в ответе. Разумеется, оно всегда будет один. Это одно число - количество строк. А Вам нужно именно это число. Т.е. $row=$result->fetch_assoc(); $amount2=$row['count(*)']; Думаю, так. И переправьте в процедурный вариант обращения к базе данных, если он Вам удобнее (я привёл объектный).
--------- Блаженны прыгающие, ибо допрыгаются
Ответ отправил: Прим Палвер (статус: 4-й класс)
Ответ отправлен: 27.11.2008, 21:05
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 236918 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: Спасибо! :) смог разобраться
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.