В новинку для [закрытого] PHP/MySQL

ПРИЛОЖЕНИЕ или / и предложения WHERE могут быть причиной. Следующий основной метод вывода состоит в том, чтобы выяснить, какая часть запроса дает такой результат:

Во-первых, удалите все предложения WHERE и проверьте, может ли текущий JOIN возвращать строки, установив WHERE таким образом:

WHERE 1 = 1
--AND c.Group = 'HR'
--AND c.bFlag IS NULL
--AND s.Report IN ('P', 'N')
--AND CONVERT(VARCHAR(6), c.changedate, 112) IN
--       (SELECT
--            CASE 
--                WHEN f.Quarter = 'Q1' THEN CONVERT(VARCHAR(4), YEAR(@f_yr) - 1) + f.FyMonthNumber
--                WHEN f.Quarter = 'ALL' AND f.FyMonth IN ('OCT', 'NOV', 'DEC') THEN CONVERT(VARCHAR(4), YEAR(@f_yr) - 1, 112) + f.FyM
--                ELSE CONVERT(VARCHAR(4), YEAR(@f_yr), 112) + f.FyM 
--            END AS FY_MONTH
--        FROM fis f
--        WHERE f.Quarter = @qrt)
--AND c.GroupLabel = 'Hr' + @dnum
[ 116] Затем, раскомментируйте утверждения WHERE один за другим, чтобы выяснить, какой из них фильтрует строки:

WHERE 1 = 1
AND c.Group = 'HR'
--AND c.bFlag IS NULL
--AND s.Report IN ('P', 'N')
--AND CONVERT(VARCHAR(6), c.changedate, 112) IN
--       (SELECT
--            CASE 
--                WHEN f.Quarter = 'Q1' THEN CONVERT(VARCHAR(4), YEAR(@f_yr) - 1) + f.FyMonthNumber
--                WHEN f.Quarter = 'ALL' AND f.FyMonth IN ('OCT', 'NOV', 'DEC') THEN CONVERT(VARCHAR(4), YEAR(@f_yr) - 1, 112) + f.FyM
--                ELSE CONVERT(VARCHAR(4), YEAR(@f_yr), 112) + f.FyM 
--            END AS FY_MONTH
--        FROM fis f
--        WHERE f.Quarter = @qrt)
--AND c.GroupLabel = 'Hr' + @dnum

Затем другое утверждение:

WHERE 1 = 1
AND c.Group = 'HR'
AND c.bFlag IS NULL
--AND s.Report IN ('P', 'N')
--AND CONVERT(VARCHAR(6), c.changedate, 112) IN
--       (SELECT
--            CASE 
--                WHEN f.Quarter = 'Q1' THEN CONVERT(VARCHAR(4), YEAR(@f_yr) - 1) + f.FyMonthNumber
--                WHEN f.Quarter = 'ALL' AND f.FyMonth IN ('OCT', 'NOV', 'DEC') THEN CONVERT(VARCHAR(4), YEAR(@f_yr) - 1, 112) + f.FyM
--                ELSE CONVERT(VARCHAR(4), YEAR(@f_yr), 112) + f.FyM 
--            END AS FY_MONTH
--        FROM fis f
--        WHERE f.Quarter = @qrt)
--AND c.GroupLabel = 'Hr' + @dnum

И так далее, пока не попадете в точка, когда строки не возвращены

Этот метод в конечном итоге приведет вас к части (частям) запроса, которая отфильтровывает строки

Если исходный набор данных возвращает слишком большое количество строк, это может быть дорого получить все из них во время отладки, поэтому я рекомендую закомментировать их и использовать вместо этого COUNT (*):

SELECT COUNT(*)
/*
c.GroupLabel AS ORG_Code,
   CONVERT (VARCHAR(7), FORMAT((CONVERT(DATE, c.changedate)), 'MM-yyyy')) AS [MONTH],
   COUNT(DISTINCT CASE s.TestType 
         WHEN 'IR' THEN c.changedate
              ELSE NULL END) AS TEST_DAYS,
   COUNT(DISTINCT c.changedate) AS ALLDAYS,
   COUNT(s.Id) AS total,
   (CASE WHEN (@u_cnt IS NULL) THEN -1 
         ELSE @u_cnt
         END) AS board_cnt,
   FORMAT((COUNT(s.Id) / CASE
                                WHEN (@u_cnt IS NULL) THEN -1 
                                ELSE @u_cnt
                                END), 'P0') AS pct_tested_text,

   CASE WHEN 100 * (COUNT(s.Id) / CASE 
                                   WHEN (@u_cnt IS NULL) THEN -1 
                                   ELSE @u_cnt 
                                   END) >= 15 
               AND (COUNT(DISTINCT CASE s.TestType
                          WHEN 'IR' THEN c.changedate
                          ELSE NULL END)) >= 4  
   THEN 'Yes'
   ELSE 'NO' END 
*/
FROM cforms c 
5
задан Joe Phillips 9 January 2009 в 19:01
поделиться

11 ответов

Я избежал бы книг для PHP. MySQL будет довольно знаком Вам от Вашего курса Базы данных в колледже - у меня есть большая часть того, в чем я нуждаюсь из их Справочника.

PHP довольно нечетен, потому что существует, как Вы говорите, что миллион и учебные руководства там, но после того как Вы проходите самые основы, Вы, вероятно, найдете еще раз, что заканчиваете тем, что возвращались к их документации по платформе больше, чем что-либо еще. Можно найти учебное руководство существует столь же хорошая начальная точка как любой.

7
ответ дан 18 December 2019 в 14:52
поделиться

Возглавьте первый Php, и mysql просто прибыл Ваш ближайший barnes и дворяне (или границы), я не считал его (он прибудет в меня в воскресенье), но я уверен, что это - САМЫЙ ЛУЧШИЙ способ начать!

Обновление - считало его и стоящий денег и время, пойдите для него!

1
ответ дан 18 December 2019 в 14:52
поделиться

Запустите проект!

Программа самостоятельно персональный блог. Запишите все (и я имею в виду все!) самостоятельно. Это поможет Вам стать очень знакомыми с языком очень быстро.

Законченное здание Ваш основной блог? Обновите его! Сделайте спам-фильтр для комментариев, канала RSS, и отправьте почтовые подписки, удостоверьтесь, что это безопасно. После того, как Вы будете закончены Ваш блог, перейдете на больший, более сложный проект, и цикл продолжается.

Используйте документацию PHP и этот сайт при столкновении с какими-либо стенами.

4
ответ дан 18 December 2019 в 14:52
поделиться

Визуальные Руководства по быстрому началу работы PeachPit являются некоторыми лучшими введениями языка, которые я нашел. Серия QuickStart по общему признанию только преподает к промежуточному уровню. Однако, примеры просты, все же завершаются и должны получить Вас от к хорошему началу с PHP.

Если Вы хотите более полную ссылку, можно пойти с книгой, которую Rasmus Lerdorf помог записать.

2
ответ дан 18 December 2019 в 14:52
поделиться

Проблема, которую я нашел, состоит в том, что все книги устарели к тому времени, когда у меня был шанс купить их. Какие-либо книги рассказывают об объектах PDO или чем-либо важном новом?

Но для более старого материала и основ, мне понравился Sams, Преподают Себе PHP за 10 минут, потому что он позволяет Вам переходить прямо в и пачкать руки.

0
ответ дан 18 December 2019 в 14:52
поделиться

Лучший выбор с веб-языками состоит в том, чтобы просто попытаться подать простую заявку. Будьте этим блог, форум, или маленький CMS для веб-сайта - не имеет значения. Большая вещь о PHP - это, имеет многочисленное онлайн-сообщество (и на Переполнении стека и в другом месте)

Что-то важное для замечания сразу, это лучше использовать класс базы данных вместо функций mysql_ если ни для чего иного простота параметризации запросов. Примерами был бы PDO и mysqli

0
ответ дан 18 December 2019 в 14:52
поделиться

Одна из действительно хороших вещей о PHP существует так много открытого исходного кода, записанного в нем там.

Я нахожу лучший способ узнать, что язык должен посмотреть на некоторые другие проекты народов и видеть, как они пошли о создавании их приложений.

http://php.opensourcecms.com/ имеет ссылки на сотни различных проектов PHP с открытым исходным кодом, которые покажут Вам, как создать примерно что-либо из блогов, CMS, CRM, Wikis, фотогалерей, форумов и электронной коммерции.

0
ответ дан 18 December 2019 в 14:52
поделиться

Избегайте зеленых - они еще не готовы.

Но, чтобы быть серьезной, если Вы изучили C и Java, PHP примерно использует другой синтаксис и делает определенные немного более короткие/более быстрые вещи (по стоимости, хотя). Никакие объявления (если для Вашего собственного душевного спокойствия и для переменных класса), начиная с переменных не вводятся. Даже синтаксис обоснованно близко к C.

Я сказал бы, что существенное различие от C - то, что PHP используется главным образом для веб-программирования, и что вместо того, чтобы выбрать книгу о PHP Вы могли выбрать книгу о создании веб-сервисов/веб-сайтов и узнать о PHP только из ссылки и примеров.

Проблема со многими книгами PHP состоит также в том, что они часто показывают Вам самый простой способ сделать вещь. К сожалению, это является не всегда самым умным и, особенно в веб-программировании - не самое безопасное, как книга по C показ Вам адресная арифметика с указателями, но не предупреждение о переполнении буфера.

0
ответ дан 18 December 2019 в 14:52
поделиться

Моя любимая книга, когда я начинал изучать PHP, была 7 в одном "для Макетов" книга:

http://www.dummies.com/store/product/Apache-MySQL-and-PHP-Web-Development-All-in-One-Desk-Reference-For-Dummies.productCd-0764549693,navId-322467.html

Как другие сказали, после того как Вы начинаете, Вы проведете больше времени в официальной документации PHP (http://www.php.net/docs.php), но книга как та выше может помочь дать Вам большой вид с высоты птичьего полета целого стека от Apache до PHP к базе данных, которая является чем-то, чему Вы не могли быть подвергнуты в Ваших классах программирования и будете очень услужливы.

То, когда у меня была книга, это довольно устарело и должно было забыть некоторые старые / дурные привычки, таким образом, Вы сделаете себя сервис путем проверки независимо от того, что Вы добираетесь, актуально.

Кроме того, как другие сказали, основываясь на существующем проекте с открытым исходным кодом, может учить Вас много структуре проекта и общим методам программирования. Существует много "плохого" кода PHP там, но существует много хорошего кода также, что можно извлечь уроки из.

Установите WordPress и попытайтесь писать плагин или настройте фотогалерею и добавьте немного опции к нему. PHP является пользой, изучают вид на практике языка.

0
ответ дан 18 December 2019 в 14:52
поделиться

Мой единственный совет, избегают использования необработанного MySQL. Когда Вы должны для использования SQL много, пора использовать платформу, такую как CodeIgniter.

-1
ответ дан 18 December 2019 в 14:52
поделиться

PHP является очень простым языком. Нет никаких необычных вещей как закрытия или propertiers. Если Вы знаете Java, то изучение php является просто вопросом groking часть сценариев его (т.е., он не должен быть скомпилирован), и некоторый материал как имена переменной начинается с '$' и т.д. О, и узнайте об их структуре массива, которая довольно гибка.

Все остальное просто сводится к поиску функции в ссылке www.php.net.

На самом деле нет такой вещи как "усовершенствованный php", если Вы не хотите, действительно пишут Ваше собственное php расширение, которое требует C.

0
ответ дан 18 December 2019 в 14:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: