Если есть свободное время гляньте можно ли оптимизировать или же изящней написать????? сильно не критикуйте я ведь только учусь!!! <?php if (isset($_GET['subcategories'])) {$subcategories=$_GET['subcategories'];} if (isset($_GET['categories'])) {$categories=$_GET['categories'];} if (isset($_GET['articles'])) {$articles=$_GET['articles'];} /* если не выбрана категория */ if (!isset($categories)) { echo "<p><a href='new_cat.php'>Создайте категорию...</a></p>"; echo "<p>или выберите существующую!</p>"; $resultCategories=mysql_query ("SELECT id,name FROM categories"); $myrowCategories=mysql_fetch_array($resultCategories); do { /* Выводим категории */ printf ("<p><a href='edit_post.php?categories=%s'>%s</a></p>",$myrowCategories["id"],$myrowCategories["name"]); } while ($myrowCategories=mysql_fetch_array($resultCategories)); } /* если не выбрана подкатегория */ if (isset($categories)&&!isset($subcategories)) { echo "<p><a href='add_subcat.php'>Создайте подкатегорию...</a></p>"; echo "<p>или выберите существующую!</p>"; $resultSubCategories=mysql_query ("SELECT id,class FROM subcategories WHERE categories=$categories"); $myrowSubCategories=mysql_fetch_array($resultSubCategories); do { /* Выводим подкатегории */ printf ("<p><a href='edit_post.php?categories=$categories&subcategories=%s'>%s</a></p>",$myrowSubCategories["id"],$myrowSubCategories["class"]); } while ($myrowSubCategories=mysql_fetch_array($resultSubCategories)); } /* если не выбрана статья */ if (isset($subcategories)&&!isset($articles)) { echo "<p><a href='new_post.php'>Создайте статью...</a></p>"; echo "<p>или выберите существующую!</p>"; $resultArticles=mysql_query ("SELECT id,name FROM articles WHERE class=$subcategories"); $myrowArticles=mysql_fetch_array($resultArticles); do { /* Выводим статьи */ printf ("<p><a href='edit_post.php?categories=$categories&subcategories=$subcategories&articles=%s'>%s</a></p>",$myrowArticles["id"],$myrowArticles["name"]); } while ($myrowArticles=mysql_fetch_array($resultArticles)); } /* когда выбрана конкретная статья */ if (isset($articles)&&isset($subcategories)&&isset($categories)) { $result=mysql_query ("SELECT * FROM articles WHERE id=$articles"); $myrow=mysql_fetch_array($result); /* Выводим конкретную стать. */ echo "<h2 align='center'>Редактирование статьи такой то!!!</h2>"; print <<<HERE <form name="form1" method="post" action="!update_post.php"> <p> <label>Введите название статьи(не более 20 символов оно необходимо для подменю!)<br> <input value="$myrow[name]" type="text" name="name" id="name"> </label> </p> <p> <label>Введите краткое описание статьи для поисковика<br> <input value="$myrow[meta_d]" type="text" name="meta_d" id="meta_d"> </label> </p> <p> <label>Введите ключевые слова статьи для поисковика<br> <input value="$myrow[meta_k]" type="text" name="meta_k" id="meta_k"> </label> </p> <p> <label>Введите полный текст статьи с HTML тегами абзацев<br> <textarea value="$myrow[text]" name="text" cols="40" rows="20" id="text"></textarea> </label> </p> <p> <label>Введите название страницы отображаемое в заголовке баузера<br> <input value="$myrow[title]" type="text" name="title" id="title"> </label> </p> <p> <label>Выберите подкатегорию статьи<br> <select name="class"> HERE; do { printf ("<option value='%s'>%s</option>",$myrowSubCategories['id'],$myrowSubCategories['class']); } while($myrowSubCategories = mysql_fetch_array($resultSubCategories)); echo" </select> </label> </p> <p> <label>Выберите категорию статьи<br> <select name='categories'>"; do { printf ("<option value='%s'>%s</option>",$myrowCategories['id'],$myrowCategories['name']); } while($myrowCategories = mysql_fetch_array($resultCategories)); echo" </select> </label> </p> <p> <input name='submit' type='submit' value='Занести в базу' id='submit' /> </p> </form>"; } ?> [/php]
Да Женечка, вернее попытка отойти от его метода, не увенчавшаяся успехом, так как из за неодстатка знаний код вырос в разы... Код то рабоочий, только как то коряво... Подсвечивать...да тут все подсвечивать можно...
"Психи! - решил первый. Вяжем! - отозвался второй." Как-то интересно Женя объясняет про конструкции if. Т.е. if объясняет, а про else не рассказывает.... Про magic_quotes, проверку данных и циклы, такое впечатление, что ВООБЩЕ никто из его учеников не знает...
этой фразой вы все обьяснили и мне сразу стало ВСЕ ПОНЯТНО, критиковать других проще а самим как по букварю сложно пошагово ошибки указать
ТАК ОБЬЯСНИТЕ НА ПРИМЕРЕ КОНКРЕТНОМ!!! ТОЛЬКО ДОСТУПНО КАК БЛИН ШКОЛЬНИКУ, Я ЖЕ НЕ ПРОГРАММЕР СО СТАЖЕМ, месяц всего изучаю Я НЕ ТОЛЬКО ЭНДИ ХАРРИСА прочитал почти то же самое, УСТАРЕВШЕЕ НА 3 ГОДА ВЫ В СОСТОЯНИИ ПРИМЕР СОВРЕМЕННЫМ КОДОМ ИЗОБРАЗИТЬ!!!!! ЖЕНЯ хоть и на примитивном но зато на доступном уровне истины разжевывает , что "вода блин не только течет, но и замерзает, и не надо стирать boot.ini на диске С:"
nayre Ну например Пишется без do вот так: PHP: <? while ($myrowArticles=mysql_fetch_array($resultArticles)) { /* Выводим статьи */ printf ("<p><a href='edit_post.php?categories=$categories&subcategories=$subcategories&articles=%s'>%s</a></p>",$myrowArticles["id"],$myrowArticles["name"]); } Вместо Лучше писать так: PHP: ?> </select> </label> </p> <p> <input name='submit' type='submit' value='Занести в базу' id='submit' /> </p> </form> Ну и т.д. В разделе "Прочие вопросы по PHP" есть список рекомендуемой литературы. ЗЫ. Подсветка у тебя не сработала, потому что ПЕРЕД кодом нет PHP: .
Хорошо. Объясняю. Хотя бы эта строчка Во-первых. Никогда не верь данным, пришедшим от пользователя! Если уж хочется напрямую передавать $_GET, то предлагаю сделать так: Т.о. мы проверили, что переданные данные являются десятичным числом, больше нуля. Во-вторых. Выводить данные ф-ями echo и print можно ,конечно. Но тогда php будет обрабатывать еще и html, а это дополнительные затраты. Поэтому проще будет сделать, как написали выше -
В-третьих, прочитай вот тут (на русском) http://www.phpmasterbook.info/content/view/57/83/ про цикл do..while.
Кто такой Женя Попов? (ну или что такое?) ) На форуме это имя уже несколько раз "обругали", интересно)
Тигренок, http://kocby.ru/post/webmaster/php-mysql/popov/ и http://yandex.ru/yandsearch?text=%D0%95 ... par4=%2Fs1
Вот ведь , бывает час пытаюсь понять в чем фишка, но ко не работает... Взято с ресурса - http://www.ibm.com/developerworks/ru/edu/os-phptut1/section5.html Код: PHP: <?php function validate($allSubmitted){ $message = ""; $passwords = $allSubmitted["pword"]; $firstPass = $passwords[0]; $secondPass = $passwords[1]; $username = $allSubmitted["name"]; if ($firstPass != $secondPass) { $message = $message."Passwords don't match<br />"; } if (strlen($username) < 5 || strlen($username) > 50){ $message = $message."Username must be between 5 and 50 characters<br />"; } if ($message == ""){ $message = "OK"; } return $message; } function db_connect($user='wfuser', $password='wfuser', $db='workflow'){ mysql_connect('localhost', $user, $password) or die('I cannot connect to db: ' . mysql_error()); mysql_select_db($db); } foreach ($_POST as $key=>$value) { echo "<p>".$key." = " . $value . "</p>"; } $passwords = $_POST["pword"]; echo "First password = ".$passwords[0]; echo "<br />"; echo "Second password = ".$passwords[1]; if (validate($_POST) == "OK") { echo "<p>Thank you for registering!</p>"; db_connect(); $sql = "select username from users where username='".$_POST["name"]."'"; $result = mysql_query($sql); if (!$result) { $sql = "insert into users (username, email, password) values ('".$_POST["name"]."', '".$_POST["email"]."', '".$passwords[0]."')"; $result = mysql_query($sql); if ($result){ echo "It's entered!"; } else { echo "There's been a problem: ".mysql_error(); } } else { echo "There is already a user with that name: <br />"; $sqlAll = "select * from users"; $resultsAll = mysql_query($sqlAll); $row = mysql_fetch_array($resultsAll); while ($row) { echo $row["username"]." -- ".$row["email"]."<br />"; $row = mysql_fetch_array($result); } } mysql_close(); } else { echo "<p>There was a problem with your registration:</p>"; echo validate($_POST); echo "<p>Please try again.</p>"; } ?> У меня упорно пишет что такой пользователь в базе есть, хотя ну НЕТ ЕГО ТАМ!!!! Уже раза 3 с начала начинал. Даже по англицкой версии... В 72 там опечатка была вроде серьезный ресурс.... Вот и думаю может где еще ошибка просто из-за нехватки опыта не вижу.....
Все работает пока не вставляю код проверки уникальности с 50 стр по 52 и 63 по 69, то есть косяк здесь зарыт .... Но в чем хоть убейте не пойму, синтаксис верен..., однако при уникальном имени пишет, нифига мол, оно не уникально и выводит в качестве примера 1 запись в базе....
ДАаа...Риторический ответ. Просто моих знаний не хватает что бы увидеть где, вот и спрашиваю... На РУ сайте IBM были опечатки, а когда трижды код проверял их исправил, работать не стало проситал EN версию того же мануала, хоть убейте не вижу что мешает...