PHP.SU

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

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

> Найдено сообщений: 117
Perun Отправлено: 28 Апреля, 2019 - 19:31:01 • Тема: почему не работает case? • Форум: Вопросы новичков

Ответов: 8
Просмотров: 441
Через if-else работает. А как правильно будет записать через switch-case? Или в подобных случаях switch-case не уместно?
Perun Отправлено: 28 Апреля, 2019 - 19:09:41 • Тема: почему не работает case? • Форум: Вопросы новичков

Ответов: 8
Просмотров: 441
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function discriminant($a, $b, $c){
  3.     return $b*$b-4*$a*$c;
  4. }
  5. $a = 1;
  6. $b = 12;
  7. $c = 36;
  8. $result=discriminant($a,$b,$c);
  9. echo 'дискриминант: '.$result.'<br>';
  10. switch($result){
  11.     case ($result<0) : {
  12.         echo 'корней нет';
  13.         break;
  14.     }
  15.     case ($result>0) : {
  16.         $res1 = (-$b+sqrt(discriminant($a,$b,$c)))/(2*$a);
  17.         $res2 = (-$b-sqrt(discriminant($a,$b,$c)))/(2*$a);
  18.         echo 'корень1: '.$res1.'<br>';
  19.         echo 'корень2: '.$res2;
  20.         break;
  21.     }
  22.     case ($result==0) : {
  23.         $res1 = (-$b+sqrt(discriminant($a,$b,$c)))/(2*$a);
  24.         echo 'корень1: '.$res1;
  25.         break;
  26.     }
  27. }
  28. ?>


В выводе дискриминант 0 и нет корней.
Дискриминант вычисляется правильно, но switch не пойму почему игнорирует условие, когда дискриминант = 0 и отрабатывает условие когда дискриминант меньше нуля.
Perun Отправлено: 27 Апреля, 2019 - 23:22:46 • Тема: Исключающее ИЛИ • Форум: Вопросы новичков

Ответов: 2
Просмотров: 256
Дернул меня ... проверить оператор сравнения, теперь сижу в тупике...
запрос

дает результат:
Цитата:
bool(true)

Почему же результат истина, если оба значения истина??
Perun Отправлено: 21 Апреля, 2019 - 16:29:50 • Тема: Использование условия с одним вариантом • Форум: Вопросы новичков

Ответов: 4
Просмотров: 324
С тернарным оператором я так понял он в таком случае неуместен?
Ну и с этим
Perun пишет:
насколько корректн/некорректно использование определения в условии(строка 6) и вообще такие записи в фале разметки, а не в php? Редактор кода PHP Storm ругается, говорит, что это плохая практика.

Вопрос открыт..
Perun Отправлено: 21 Апреля, 2019 - 11:27:49 • Тема: Использование условия с одним вариантом • Форум: Вопросы новичков

Ответов: 4
Просмотров: 324
Например:

Если существует переменная, выводим ее, если нет, то ничего выводить на экран не нужно.

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $res=mysqli_query($link,"SELECT * FROM `comments`") or exit('error: '.mysqli_error($link));
  3. $entries_amount = mysqli_num_rows($res);
  4. echo 'Comments('.@$entries_amount.'):';
  5.         if($entries_amount){
  6.                 while($row=mysqli_fetch_assoc($res)){
  7.                         echo '<div class="comment"> -'.$row['name'].' '.$row['date'].'<br>'.$row['text'].'</div>';
  8.                 }
  9.         }
  10.         else{
  11.                 echo 'No entries yet';
  12.         }?>



Корректно ли вообще использование собаки? Как обойтись без нее? И как это можно записывать через тернарный оператор?

И насколько корректн/некорректно использование определения в условии(строка 6)? Редактор кода PHP Storm ругается, говорит, что это плохая практика.
Perun Отправлено: 08 Апреля, 2019 - 14:58:28 • Тема: формат записи инструкций для работы с БД • Форум: Работа с СУБД

Ответов: 1
Просмотров: 1569
Я правильно понимаю, что первый вариант - устаревший/альтернативный формат той же самой инструкции?

CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO `table` SET
  2. `key1`='value1'
  3. `key2`='value2'
  4. `key3`='value3'
  5.  



CODE (SQL):
скопировать код в буфер обмена
  1. INSERT INTO `table`
  2. (`key1`,`key2`,`key3`)
  3. VALUE('value1','value2','value3')
Perun Отправлено: 22 Марта, 2019 - 17:30:32 • Тема: ошибка типа данных • Форум: Вопросы новичков

Ответов: 5
Просмотров: 481
LIME пишет:

скрипт запускается как консольный

$_SERVER формируется веб-сервером

Можете объяснить чем отличается выполнения скрипта через консоль, и через локальный сервер? С локальным сервером не совсем понимаю, вернее - совсем не понимаю. PHP Storm запускает скрипт без опенсервера, и это работает через локальный сервер. и через запущенный опенсервер - тоже через локальный сервер. Надпись localhost я вижу в адресной строке только в варианте запуска в браузере через PHP Storm. И массивы $_SERVER отличаются при запуске через опернсервер и через PHP Storm(не через консоль, а в браузере)
Perun Отправлено: 22 Марта, 2019 - 16:29:02 • Тема: ошибка типа данных • Форум: Вопросы новичков

Ответов: 5
Просмотров: 481
andrewkard пишет:
Как запускаете? Интересная ошибка
Perun пишет:
Process finished with exit code 0

Я так понимаю, что у меня что-то не работает/я неправильно делаю. Запускаю прямо в PHP Storm, но если открыть в браузере, то в браузере ошибки не видно. Я совсем запутался в связке PHP Storm - OpenServer.
Скрипт у меня получается запустить без запуска сервера внутри самого PHP Storm, открыть в браузере через PHP Storm, и запустив сервер так же открыть в самом PHP Storm и открыть через него в браузере. Во всех случаях разные результаты. и соответственно адресная строка в браузере отличается при запущенном сервере и не запущенном.
Я вообще не понимаю как одно связано с другим. и не знаю где почитать об этом/разобраться.
Perun Отправлено: 20 Марта, 2019 - 22:57:40 • Тема: ошибка типа данных • Форум: Вопросы новичков

Ответов: 5
Просмотров: 481
Я так понимаю. что дебагер ругается именно из за того, что нет явного указания/приведения переменной $dir к типу данных - массив?
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         $dir=scandir($_SERVER['DOCUMENT_ROOT']);
  3.         $count=count($dir);
  4.         echo $count;
  5.         echo '<br><pre>'.print_r($dir,1).'</pre>';
  6. foreach($dir as $k => $v){
  7.         echo(is_dir($v))?'<a href="#">'.$v.'</a>.'.'<br>':$v.'<br>';
  8.         }
  9.  
  10. ?>



CODE (html):
скопировать код в буфер обмена
  1. 1<br><pre></pre>PHP Warning:  scandir(): Directory name cannot be empty in C:\OSPanel\domains\214th\test.php on line 2
  2. PHP Warning:  count(): Parameter must be an array or an object that implements Countable in C:\OSPanel\domains\214th\test.php on line 3
  3. PHP Warning:  Invalid argument supplied for foreach() in C:\OSPanel\domains\214th\test.php on line 6
  4.  
  5. Process finished with exit code 0


Но вывод на экран при этом работает корректно..

Ругалось на неправильные данные, пока явно не привел $dir к типу массив, хотя вывод на экран в обоих случаях работает корректно.

А вот с первой ошибкой не понял - что имеется в виду пустое значение? Или это глобальная переменная интерпретируется как пустая? Она же не пустая, да и вывод на экран это показывает. Как поступать с этой ошибкой?
Perun Отправлено: 18 Марта, 2019 - 22:37:43 • Тема: Оптимизация структуры кода • Форум: Вопросы новичков

Ответов: 1
Просмотров: 139
Думал, как назвать тему, так и не подобрал что реально отображает суть вопроса... К сути:

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

Давненько начинал изучать веб пограммирование, не было возможности продолжить заниматься, сейчас опять начал с нуля. Нашел тут задачку в сети, для начинающих. Я ее уже делал раньше. Хотел специально сравнить результаты. То что сделал сейчас оказалось более объемным, хотя по структуре как мне кажется - более понятным. Да и вообще, решая сейчас эту задачку, я ее переделывал раза три-четыре полностью с нуля и все разы, код у меня значительно отличался от предыдущего. Много условий при проверках, не знаю с какой стороны подступиться, начинаю путаться - Или структурированно в виде иерархии делать проверки одно условие за другим перебирать(но тогда код становится более объемным, хотя и более читаемым и понятным), или просто выписывать подряд пачками условия через if-else без всяких ветвлений и подусловий(но тогда в одном if оказывается много проверок сразу через "и" и "или")? Когда много условий и подусловий - вся эта каша перемешивается, когда начинаю сопоставлять условия из соседних if пачек, и это даже в коде всего то из 40 строчек... Хотя сами то по себе условные операторы понимаю хорошо как работают.
Perun Отправлено: 18 Марта, 2019 - 11:35:48 • Тема: не передается параметр через форму • Форум: Вопросы новичков

Ответов: 2
Просмотров: 192
Спасибо, через print_r и смотрел.
В разметке не менял ничего, а вот в самом коде были лишние редиректы. Вернее они не лишние. но причина в них. Редирект в обработчике на самого себя использовал, чтобы при обновлении странички средствами браузера, данные введенные в форму, повторно не отправлялись на сервер а только по нажатию кнопки.
Perun Отправлено: 18 Марта, 2019 - 00:11:29 • Тема: не передается параметр через форму • Форум: Вопросы новичков

Ответов: 2
Просмотров: 192
В разметке ничего не менял. Почему-то перестало нажатие кнопки передаваться. Передаю методом post. При этом другие параметры с этой же формы, такие же кнопки - передаются. Где искать проблему?
Сама кнопка выполняет основные заданные логикой функции, происходит обработка данных, но в массиве post не отображается.
Но при этом часть логики не работает. т.е. нет рекции на нажатие в другой области кода. Сам не пойму как это может быть.
Perun Отправлено: 16 Марта, 2019 - 08:56:24 • Тема: Как показывать пользователю форму? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 210
[quote=Vladimir Kheifets][/quote]Спасибо!
Perun Отправлено: 16 Марта, 2019 - 00:13:45 • Тема: Как показывать пользователю форму? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 210
Пользователю выводится форма и в зависимости от статуса или определенных действий клиента форма немного должна видоизмениться - одни элементы добавляются, другие наоборот скрываются.

Как правильнее делать?

Делать для каждой ситуации отдельную HTML форму и в зависимости от необходимости переадресовывать на нужную отдельную форму, или все это делать на одной единственной форме через задание свойств конкретным элементам - скрывать или показывать?

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB