PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (7): [1] 2 3 4 5 6 7 »

> Найдено сообщений: 100
haveFun Отправлено: 13 Июля, 2018 - 18:26:00 • Тема: Не уверен что правильно написан запрос... • Форум: SQL и Архитектура БД

Ответов: 1
Просмотров: 173
1. если нужен
Цитата:
отчет «книга — количество соавторов»

то зачем вообще джойнить таблицу авторов?
2. зачем делать селект всех полей? если нужно только название книги и кол-во авторов?

CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT b.name, count(ab.id) cnt
  3. FROM author_book ab
  4. LEFT JOIN book b ON b.id = ab. book_id
  5. GROUP BY ab.book_id
  6. HAVING cnt = 3
  7.  


3. названия полей лучше создавать в одном регистре, а не так:
Цитата:

id int
NAME varchar(255)


4. primary key имеет смысл делать unsigned
haveFun Отправлено: 13 Июля, 2018 - 18:04:36 • Тема: Не находит класс. • Форум: Объектно-ориентированное программирование

Ответов: 4
Просмотров: 259
используйте композер, к чему эти велосипеды?
haveFun Отправлено: 13 Июля, 2018 - 17:57:31 • Тема: Прошу подсказать - <?php echo $text; ?> Выдает абракадабру - PHP • Форум: Вопросы новичков

Ответов: 6
Просмотров: 222
это дерьмо:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
поменяйте полжалуйста на вот это:
<!DOCTYPE html>
отлично, вы молодец!
haveFun Отправлено: 13 Июля, 2018 - 17:53:08 • Тема: Как получить начало каждой второй недели? • Форум: Вопросы новичков

Ответов: 5
Просмотров: 223
при создании нового объекта, добавляйте обратный слеш.
(new \DateTime())
так, на всякий случай
haveFun Отправлено: 06 Июля, 2017 - 15:28:28 • Тема: Как создать свойство-объект в классе? • Форум: Вопросы новичков

Ответов: 3
Просмотров: 332
почему у вас в коде Используются разные_натации?
haveFun Отправлено: 27 Июня, 2017 - 17:33:18 • Тема: Как дописать условие PHP • Форум: Вопросы новичков

Ответов: 2
Просмотров: 383
лол это не будет работать.
надо $aColumns[$i] <= $left && $left <= $aColumns[$i+1]
haveFun Отправлено: 13 Апреля, 2017 - 14:32:29 • Тема: Консультация по public function • Форум: Вопросы новичков

Ответов: 4
Просмотров: 383
че за приколы? в первой строке используется обычная, а в методе какая-то глобальная, в которой скорее всего ничего нет?
haveFun Отправлено: 12 Апреля, 2017 - 19:04:39 • Тема: Номер контракта автоматически на PHP Mysql • Форум: Вопросы новичков

Ответов: 3
Просмотров: 407
как данные в бд хранятся? у поядкового номера контракта отдельный столбец, или вся каша в одном поле?
haveFun Отправлено: 11 Апреля, 2017 - 19:47:09 • Тема: не работает select from • Форум: Вопросы новичков

Ответов: 2
Просмотров: 263
у вас реально таблица называется table?
haveFun Отправлено: 05 Апреля, 2017 - 13:52:20 • Тема: Сессии / аналог им • Форум: Вопросы новичков

Ответов: 9
Просмотров: 684
сессии вообще никак не совместимы с апи.
тут бд нужно использовать и в ней хранить значения счетчиков для пользователей
haveFun Отправлено: 13 Марта, 2017 - 11:23:52 • Тема: Автоподстановка данных в поля при редактировании • Форум: Вопросы новичков

Ответов: 7
Просмотров: 724
1. стоит различать сравнение строк
if ($sValue == '') {} else{}
и получение размера строки
if (strlen($sValue) == 0)
это принципиально разные вещи.

почитайте http://stackoverflow[dot]com/questio[dot][dot][dot]rlenstr-0-in-php

2. да, для этого существует специальный метод empty(), я же написал.
haveFun Отправлено: 10 Марта, 2017 - 09:52:52 • Тема: Автоподстановка данных в поля при редактировании • Форум: Вопросы новичков

Ответов: 7
Просмотров: 724
1. зачем это нужно, если вы обновляете только те значения, которые собираются в массиве arSetUpdate? если значение - пустая строка, то оно не добавится в массив, не добавится в запрос, и соответственно не обновится - останится старым.
после обновления достаните актуальные данные, и выведе во вью, а то что используете вы - велосипед из кастылей, жуткая практика, но все приходит с опытом.

2. приходит пустая строка = '', ее длина равна 0.
стоит обратить внимание например на то, что не выделенный чекбокс вообще не придет, в отличие от текстового инпута или селекта.

3. начнем с конца. если текущее значение пустая строка - мы не обновляем данные для текущего поля.
разница между ифами чисто в контексте:

1 - если мы используем каунт - соответственно мы собираемся работать с результирующим числом, например сравнивать его с другим числом.
2 - так не пишут. просто не пишут и все. хотя можно написать, но зачем нам каунт, если мы ожидаем не число, а булиновое значение?
3 - проверка на пустой/не пустой массив - используется там где требуется именно эта проверка. отрабатывает быстрее чем каунт, но это заметно только при сравнении внутри большого кол-ва циклов, например при переборе десятков или сотен тысяч записей из бд.
при добавлении данных из формы 1 и 3 варианты отработают примерно с одинаковой скоростью.

проверка эта нужна потомоу что она нужна. просто приучайте себя проверять и валидировать все данные, которые приходят со стороны клиента, особенно когда эти данные вносятся в бд.
haveFun Отправлено: 09 Марта, 2017 - 14:31:17 • Тема: Автоподстановка данных в поля при редактировании • Форум: Вопросы новичков

Ответов: 7
Просмотров: 724
1. селект нужно делать после апдейда, а не перед ним.
2. да. отвыкайте от этих древних array().
3. если значение будет 0 - strlen вернет 1 потому что http://php.net/manual/ru/function.strlen.php
пустое значение (null) в посте не приходит.
4. тогда уж if (!empty($arSetUpdate)) - если наносекунды экономим.
haveFun Отправлено: 09 Марта, 2017 - 12:26:25 • Тема: Связать 2 input chekbox • Форум: Вопросы новичков

Ответов: 2
Просмотров: 313
это реализуется на клиенте на javascript
haveFun Отправлено: 09 Марта, 2017 - 12:22:32 • Тема: Автоподстановка данных в поля при редактировании • Форум: Вопросы новичков

Ответов: 7
Просмотров: 724
PHP:
скопировать код в буфер обмена
  1.  
  2. $arSetUpdate = [];
  3. foreach ($_POST as $sKey => $sValue) {
  4.     if (strlen($sValue) == 0) {
  5.         continue;
  6.     }
  7.  
  8.     switch ($sKey) {
  9.         case 'title':
  10.         case 'cat':
  11.         case 'author':
  12.         case 'short_description':
  13.             $arSetUpdate[] = $sKey . '="' . arrrealstr($sValue) . '"';
  14.             break;
  15.  
  16.         case 'full_description':
  17.             $arSetUpdate[] = $sKey . '="' . arrrealstr(nl2br($sValue)) . '"';
  18.             break;
  19.     }
  20. }
  21. if (count($arSetUpdate) > 0) {
  22.     $sSetUpdate = 'UPDATE news SET ' . implode(',', $arSetUpdate) . ' WHERE id = ' . intval($_GET['key1']); // надеюсь id у вас это число...
  23.     query($sSetUpdate);
  24. }
  25.  


лишний запрос из 3 и 4 строки можно не выполнять.
и поменяйте в форме инпут news_cat на cat, пусть все будет приведено к единому виду, если это проблема, то выносите в отдельный кейс.

Страниц (7): [1] 2 3 4 5 6 7 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB