Доброго времени суток. Вот решил на днях снова заняться php (пытался раньше изучать, но как то у меня не срослось, но ХОЧЕТСЯ ЖЕ). Поэтому, вспомнив старое, решил попробовать создать нечто вроде скрипта считающего факториалы. Мозгов хватило лишь на это: <?php echo '<input type="text" name=a><br> <input type=submit name="submit" value="Посчитать">'; if($a<=0){ echo "Введен неверный формат числа";} else{ $b=1; $c=2; for($b,$b==$a,$b++){ for($c,$c==$a,$c++){ $d=$b*$c; } } } ?> Как вы заметили, он не дописан. Я не могу придумать, как после выполнения цикла, сложить все результаты. Сначала подумал записать данные в массив... Но идея себя по-моему не оправдала. Что посоветуете? Знаю, что все наверно убого, но все же пытаюсь понять этот язык. Выходит тяжко..
спасибо большое. Надеюсь ошибок в скрипте нет. Премного вам благодарен! Добавлено спустя 45 минут 11 секунд: Еще один вопрос. Поставил скрипт. Пишет Parse error: syntax error, unexpected ')', expecting ';' in Z:\home\localhost\www\index.php on line 16. 16 строка выглядит следующим образом 13.}else{ 14.$b=1; 15.$c=2; 16.for($b,$b==$a,$b++){ 17.for($c,$c==$a,$c++){ 18.$d=$b*$c; подскажите, где тут может быть ошибка?
И это снова я, с глупыми вопросами Ошибку с for исправил - скрипт запустился. Но, при вводе в поле числа, и после нажатия кнопки "посчитать" мне вместо вывода результата фактически обновляет страницу. И как всегда, я не могу понять в чем дело <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Считаем факториалы</title> </head> <body> <?php echo '<form name="fak" method="post" action="index.php"> <input type="text" name="a"><br> <br><input type="submit" name="d" value="Посчитать"><br> <input type="hidden" name="e"> </form>'; if($a<=0) { $b=1; $c=2; for($b;$b==$a;$b++) { for($c;$c==$a;$c++) { $d=$b*$c; $d+=$b*$c; } } } else { echo "Введен неверный формат числа"; } echo "$d"; ?> </body> </html>
<form name="fak" method="post" глобальный массив http://www.php.ru/manual/reserved.variables.post.html в нём и живут ваши значения в виде $_POST['a']
Пока не очень понимаю суть... Попробую разобраться.. Не могли бы вы как-то по конкретней направить? Для понимания. Видел не раз нечто подобное как $_POST[''], но тогда, то бишь раньше, я не понимал что это. Да и сейчас плохо. Да, и позвольте задать вопрос.. Собираюсь покупать книжку по php, чтобы хоть как-то ориентироваться. Раньше была одна Афонина С.М. PHP для начинающих, из нее, собственно, и получил знания написанные в скрипте выше. Сейчас думаю купить PHP5 в подлиннике. Прочитал у вас в теме про нее, но вот вопрос, какой год издания брать. Есть 2006 и 2008. Нужно определиться. Просто очень хочется научится данному языку программирования. В свое время не получилось, теперь это можно сказать "дело чести". Да и к тому же специальность будущую выбрал такую, что связан с программированием. Нужно же открывать для себя что-то новое
кое-как допер, что переменной присвоить POST. Но теперь похоже последняя проблема. При вводе данных, скрипт выполняется, условие выполняется, но при подсчете, вместо результата выдает 0+. Что делать?) Код (Text): echo '<form name="fak" method="post" action="index.php"> <input type="text" name="a"><br> <br><input type="submit" name="d" value="Посчитать"><br> <input type="hidden" name="e"> </form>'; $a=$_POST['a']; $d=$_POST['d']; if($a>=0) { $b=1; $c=2; for($b;$b==$a;$b++) { for($c;$c==$a;$c++) { $d+=$b*$c; } } } else { echo "Введен неверный формат числа"; return false; } $d+=$_POST['d+']; echo '<br>'; echo "$d+";
$d+=$_POST['d+']; это что за строка? =) <input type="submit" name="d" value="Посчитать"> $d=$_POST['d']; Это зачем? return false; кому ретурн? куда? =) Добавлено спустя 8 минут 8 секунд: вот ваш код, в рабочем виде. Нужно в цикле for указывать условие, при котором он будет выполняться, а не прерываться. Код (PHP): echo '<form name="fak" method="post" action="/test"> <input type="text" name="a"><br> <br><input type="submit" name="d" value="Посчитать"><br> <input type="hidden" name="e"> </form>'; $a = $_POST['a']; $d = 0; if ($a >= 0) { echo "Считаем $a...<br>"; for ($b=1; $b <= $a; $b++) { echo"for1"; for ($c = 2; $c <= $a; $c++) { echo "for2"; $d += $b * $c; echo "$d<br>"; } } } else { echo "Введен неверный формат числа"; } echo "<br>Результат: $d";
Большое спасибо! Буду анализировать и исправлять ошибки. И ещё.. Зочем echo for1 В скрипте он у меня выводит не то что нужно.. Да и кстати у меня ошибка в формуле Судя по подсчетам). Ушел исправлять. Если что, буду задавать вопросф здесь ещё раз спасибо! Добавлено спустя 8 минут 22 секунды: И еще вопрос, сам синтаксис написания не является "говнокодом"? Если да, то скажите, что следует исправить. Если конечно не затруднит. Я исправлюсь Все ошибки проанализирую обязательно!
осталость от дебага. всё ок. цикл должен быть один просто Код (PHP): <?php echo '<form name="fak" method="post" action="/test"> <input type="text" name="a"><br> <br><input type="submit" name="d" value="Посчитать"><br> <input type="hidden" name="e"> </form>'; $a = $_POST['a']; $d = 1; if ($a >= 0) { echo "Считаем $a...<br>=1"; for ($i = 1; $i <= $a; $i++) { echo "*$i"; $d *=$i; } } else { echo "Введен неверный формат числа"; } echo "<br>Результат: $d";
Хм Буду думать и исправлять Спасибо огромное Не заметил приложенный код Проверил. Все ок Много ошибок у меня. Надо изучать глубже и работать над правильностью
и такой вопрос Надоел уже поди Но все же. Стоит знак более, либо равно нулю. При вводе нуля скрипт не выводит ошибки. Просто показывает результат равный 0. Это я что-то не знаю, или эта конструкция так работает? Да и кстати. Ошибкой в моей формуле оказалось то, зачем я сюда пришел Там же результат не складывать нужно было. А умножать!!! Дурак я Добавлено спустя 3 минуты 7 секунд: Ну это не совсем первый раз Но чисто теоретически да Я же раньше, где-то года 3 назад решил изучать. Но не получилось. Не понимал я тогда функции различных конструкций языка. В итоге забросил. Щас учусь на специальности, где идет программирование(правда выходная специальность не программист(об этом я узнал только сейчас )) и случайно наткнулся на старую книжку Решил попробовать. Ну вот что и получилось. Добавлено спустя 2 минуты 26 секунд: Ну это не совсем первый раз Но чисто теоретически да Я же раньше, где-то года 3 назад решил изучать. Но не получилось. Не понимал я тогда функции различных конструкций языка. В итоге забросил. Щас учусь на специальности, где идет программирование(правда выходная специальность не программист(об этом я узнал только сейчас )) и случайно наткнулся на старую книжку Решил попробовать. Ну вот что и получилось.
Ох да ну логично же ну Дурак я точно Если бы мой преподаватель по ВышМату это увидел, готовил бы петлю)