Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Везде одно и тоже [2]
Форумы портала PHP.SU » » Вопросы новичков » Везде одно и тоже

Страниц (2): « 1 [2]
 

16. Bio man - 06 Августа, 2012 - 23:26:25 - перейти к сообщению
caballero пишет:
имена типа name user
caballero пишет:
такие которые не совпадают с ключевыми словами SQL
кхм, разве это ключевые слова? А?!
17. caballero - 07 Августа, 2012 - 00:05:28 - перейти к сообщению
Цитата:
кхм, разве это ключевые слова?

http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]create-user[dot]html
да и потом речь не только о mysql.
18. Bio man - 07 Августа, 2012 - 00:31:03 - перейти к сообщению
caballero
спс, буду знать
19. Predator - 07 Августа, 2012 - 09:03:41 - перейти к сообщению
Bio man пишет:

Ну а что подсказывать, ошибки как на ладони, надо быть слепым, что бы не заметить.


Значит не вижу ошибок, а верней не знаю как по другому можно сделать. Ну покажите -ошибку.
(Добавление)
Хелп.
20. Bio man - 07 Августа, 2012 - 11:00:15 - перейти к сообщению
расставь везде нужные алиасы таблиц рядом с именами полей
21. Predator - 07 Августа, 2012 - 11:21:21 - перейти к сообщению
Извиняюсь, за вопрос . Что такое алиасы в php?
22. Zuldek - 07 Августа, 2012 - 11:29:53 - перейти к сообщению
SELECT polenumberone AS one from tblname
one - алиас.
23. Predator - 07 Августа, 2012 - 11:47:37 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  $tb = $db->query("SELECT `name`,  post.count(*) AS id
  2.        FROM category c
  3.        LEFT JOIN post p ON (c.id=p.category)
  4.        WHERE `parentid` =26
  5.        AND `category` IN (SELECT id FROM category WHERE parentid=26)
  6.        GROUP BY name
  7.        ");


Так , post.count(*) AS id?
24. caballero - 07 Августа, 2012 - 11:57:25 - перейти к сообщению
post.count(*)

вы вообще пробьуете этот скрипт на БД или только на форуме ?

count - встроеная функция а не поле - как там может быть точка?

и почему алиас у вас id?
так обозначяают идентификаторы - а здесь количество.
кто потом глядя на этот код или его результат догадается что id это на самом деле количество?
поставь cnt или типа того
25. Predator - 07 Августа, 2012 - 12:16:07 - перейти к сообщению
Я не понимаю.
count(post.id) AS id так?
count(*) AS post.id так?
count(post.id) AS one так?
count(post.id) AS count так?
Какой мне алиас нужно прописать за место идентификатора ,one? count?
26. Bio man - 07 Августа, 2012 - 12:55:56 - перейти к сообщению
да при чем тут это?

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `c`.`name`,  COUNT(0) AS 'cnt'
  2.        FROM `category` c
  3.        LEFT JOIN `post` p ON (`c`.`id`=`p`.`category`)
  4.        WHERE `?`.`parentid` = 26
  5.        AND `p`.`category` IN (SELECT `id` FROM `category` WHERE `parentid`=26)
  6.        GROUP BY `c`.`name`

Где вопросик (?) там поставить p или c
27. caballero - 07 Августа, 2012 - 12:57:34 - перейти к сообщению
Цитата:
Я не понимаю.

чего непонятного

count(*) AS cnt

и если уж ленитесь читать документаию то
потрудитесь хотя бы проверять скрипты на БД прежде чем выкладывать чтобы хоть синтаксические ошибки тут никто не разбирал
28. Predator - 07 Августа, 2012 - 13:03:34 - перейти к сообщению
Не то, результат тод же.
Выводит только (категории с их подсчетом новостей.), если имеется новость в категории.
из-за LEFT JOIN `post` p ON (`c`.`id`=`p`.`category`) и вывод, если нет в таблице post записи имеющее поле category и = полю id из таблицы category.
Заменю на INNER JOIN, тогда не будит выводить количество новостей Огорчение
29. caballero - 07 Августа, 2012 - 13:14:41 - перейти к сообщению
скрипт должен рботать
left join там нужен если надо показать категории без носостей

зачем одновременно
WHERE `parentid` =26
и
AND `category` IN (SELECT id FROM category WHERE parentid=26)

и почему поле category ? у вас что имена полей еще и с именами таблиц совпадают?


пока без всяких parentid просто проверьте
и не с сайта а прямо выполните в БД

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `name`,  count(*) AS cnt
  2.        FROM category c
  3.        JOIN post p ON (c.id=p.category)
  4.  
  5.        GROUP BY `name`


или чтобы понятнее

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `name`,  count(*) AS cnt
  2.        FROM category c, post p
  3.        WHERE c.id=p.category
  4.  
  5.        GROUP BY `name`
30. Predator - 07 Августа, 2012 - 14:59:40 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. SELECT `name`,  count(*) AS cnt
  2. FROM bl_category c
  3. JOIN bl_post p ON (c.id=p.category)
  4. GROUP BY `name`
  5.  


COUNT(0) AS 'cnt'
Как мне показать категории в которых нет новостей?
(Добавление)
И зачем одно и тоже писать
PHP:
скопировать код в буфер обмена
  1. (c.id=p.category)



Predator пишет:
Не то, результат тод же.
Выводит только (категории с их подсчетом новостей.), если имеется новость в категории.
из-за LEFT JOIN `post` p ON (`c`.`id`=`p`.`category`) и вывод, если нет в таблице post записи имеющее поле category и = полю id из таблицы category.
Заменю на INNER JOIN, тогда не будит выводить количество новостей Огорчение


Predator пишет:



Вопрос в следующем, как можно или как и чем заменить
PHP:
скопировать код в буфер обмена
  1. ON (c.id=p.category)

Результат таков: вывод категории те в которых есть новости. С количеством новостей нет проблем Улыбка

 

Powered by ExBB FM 1.0 RC1