ФорумПрограммированиеPHP для идиотов → Как уменьшить кол-во строк кода?

Как уменьшить кол-во строк кода?

  • max_fr

    Сообщения: 32 Репутация: N Группа: Кто попало

    Spritz Дек. 6, 2008, 7:09 п.п.

    Вот у меня 50 гл. Разделов в каждом разделе 100 под разделов.

    Я новичек просьба сильно не бить. Вот как я делаю и перехожу.

    Напрмер с пунктом автомобили
    echo '<form action="adppp.php" method="post" name="form2">';
    echo '<table border="0">
    <tr>
    <td class="add">Оглавление:</td>
    <td>
    <p><select name="sect[]">
    <option selected>Выберите главный раздел</option>
    <option value="Автомобили">Автомобили</option>
    <option value="Интернет">Интернет</option>
    <option value="Медицина и здоровье">Медицина и здоровье</option>
    <option value="Новости, СМИ, Информация">Новости, СМИ, Информация</option>
    <option value="Производство">Производство</option>
    <option value="Справки">Справки</option>
    <option value="Бизнес и Финансы">Бизнес и Финансы</option>
    <option value="Компьютеры">Наука и образование</option>
    <option value="Общество и политика">Общество и политика</option>
    <option value="Работа и заработок">Товары и услуги</option>
    <option value=""></option>
    <option value=""></option>
    <option value=""></option>
    <option value=""></option>
    <option value=""></option>
    </select></p>
    </td>
    <td></td>
    </tr>';
    echo '</table>';
    echo '<br /><br />
    <input name="submit" type="submit" value="Далее>>>">';
    echo '</form>';


    Далее файл "adppp.php".

    echo '<form action="ad2ppp.php" method="post" name="form2">';
    echo '<table border="0">';
    if ($sect[0]=="Автомобили") {
    echo '
    <tr>
    <td class="add">Оглавление:</td>
    <td>
    <p><select name="select[]">
    <option selected>Выберите подраздел</option>
    <option value="Авто и закон">Авто и закон</option>
    <option value="Авто купля-продажа">Авто купля-продажа</option>
    <option value="Авто-мото инфо">Авто-мото инфо</option>
    <option value="Авто-новости">Авто-новости</option>
    </select></p>
    </td>
    <td></td>
    </tr>';
    }


    Думаю принцип понятен. Обидно писать 1000 строк хотелось бы все это дело как можно быстрее осуществить…а главное правильнее. Спасибо.
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz Дек. 6, 2008, 7:10 п.п., спустя 1 минуту 10 секунд

    Ничего не понял.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Дек. 6, 2008, 7:12 п.п., спустя 2 минуты 5 секунд


    Вот у меня 50 гл. Разделов в каждом разделе 100 под разделов.

    Я новичек просьба сильно не бить. Вот как я делаю и перехожу.

    Напрмер с пунктом автомобили
    echo '<form action="adppp.php" method="post" name="form2">';
    echo '<table border="0">
    <tr>
    <td class="add">Оглавление:</td>
    <td>
    <p><select name="sect[]">
    <option selected>Выберите главный раздел</option>
    <option value="Автомобили">Автомобили</option>
    <option value="Интернет">Интернет</option>
    <option value="Медицина и здоровье">Медицина и здоровье</option>
    <option value="Новости, СМИ, Информация">Новости, СМИ, Информация</option>
    <option value="Производство">Производство</option>
    <option value="Справки">Справки</option>
    <option value="Бизнес и Финансы">Бизнес и Финансы</option>
    <option value="Компьютеры">Наука и образование</option>
    <option value="Общество и политика">Общество и политика</option>
    <option value="Работа и заработок">Товары и услуги</option>
    <option value=""></option>
    <option value=""></option>
    <option value=""></option>
    <option value=""></option>
    <option value=""></option>
    </select></p>
    </td>
    <td></td>
    </tr>';
    echo '</table>';
    echo '


    <input name="submit" type="submit" value="Далее>>>">';
    echo '</form>';


    Далее файл "adppp.php".

    echo '<form action="ad2ppp.php" method="post" name="form2">';
    echo '<table border="0">';
    if ($sect[0]=="Автомобили") {
    echo '
    <tr>
    <td class="add">Оглавление:</td>
    <td>
    <p><select name="select[]">
    <option selected>Выберите подраздел</option>
    <option value="Авто и закон">Авто и закон</option>
    <option value="Авто купля-продажа">Авто купля-продажа</option>
    <option value="Авто-мото инфо">Авто-мото инфо</option>
    <option value="Авто-новости">Авто-новости</option>
    </select></p>
    </td>
    <td></td>
    </tr>';
    }


    Думаю принцип понятен. Обидно писать 1000 строк хотелось бы все это дело как можно быстрее осуществить…а главное правильнее. Спасибо.
    надо использовать базы данных. например mysql. ну или хотя бы xml файлы
    Сапожник без сапог
  • max_fr

    Сообщения: 32 Репутация: N Группа: Кто попало

    Spritz Дек. 6, 2008, 7:17 п.п., спустя 4 минуты 38 секунд

    У меня есть таблица, где 2 поля id, name


    id_razdel name
    1 Автомобили-Авто и закон
    2 Автомобили-Авто купля-продажа
    3 Автомобили-Авто-мото инфо
    4 Автомобили-Авто-новости
    5 Автомобили-Автомобилестроение
    6 Автомобили-Автооборудование
    7 Автомобили-Автосервисы
    8 Автомобили-Автоспорт
    9 Автомобили-Автоуслуги
    10 Автомобили-Мотоциклы
    ….
  • max_fr

    Сообщения: 32 Репутация: N Группа: Кто попало

    Spritz Дек. 6, 2008, 7:44 п.п., спустя 26 минут 57 секунд

    не понимаете мой ход мыслей?
    Как я все выбираю?
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz Дек. 6, 2008, 7:55 п.п., спустя 11 минут

    Вот это непонятно
    echo '<form action="ad2ppp.php" method="post" name="form2">';
    echo '<table border="0">';
    if ($sect[0]=="Автомобили") {
    echo '
    <tr>
    <td class="add">Оглавление:</td>
    <td>
    <p><select name="select[]">
    <option selected>Выберите подраздел</option>
    <option value="Авто и закон">Авто и закон</option>
    <option value="Авто купля-продажа">Авто купля-продажа</option>
    <option value="Авто-мото инфо">Авто-мото инфо</option>
    <option value="Авто-новости">Авто-новости</option>
    </select></p>
    </td>
    <td></td>
    </tr>';
    }

    Если выбираешь из таблицы, зачем вот это??

    <option selected>Выберите подраздел</option> 
    <option value="Авто и закон">Авто и закон</option>
    <option value="Авто купля-продажа">Авто купля-продажа</option>
    <option value="Авто-мото инфо">Авто-мото инфо</option>
    <option value="Авто-новости">Авто-новости</option>
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz Дек. 6, 2008, 7:58 п.п., спустя 3 минуты 4 секунды

    Выбирай из таблицы
    $sql=mysql_query("SELECT …");
    while($row=mysql_fetch_array($sql))
    {
    echo '<option value="'.$row['NAME'].'">'.$row['NAME'].'</option>';
    }
  • max_fr

    Сообщения: 32 Репутация: N Группа: Кто попало

    Spritz Дек. 6, 2008, 8:15 п.п., спустя 17 минут 37 секунд

    точно можно и так.
    Спасибо.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Дек. 7, 2008, 8 д.п., спустя 11 часов 44 минуты 25 секунд


    точно можно и так.
    Спасибо.
    так нужно а не так можно
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz Дек. 16, 2008, 11:56 п.п., спустя 9 дней 15 часов 55 минут

    ТС, а также на будущее: <p><select name="sect[]"> - не совсем корректно.
    Не нужно в масив заносить одно передаваемое значение. Имя присваивайте простой переменной, то есть: <p><select name="sect">, что приведет к тому, что проверка на adppp.php будет не данных из массива, а из переменной if ($sect=="Автомобили") {
    Кажеться всего лишь лишние байты информации (нагрузка на сервер), но это с этого все и начинается :)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Дек. 16, 2008, 11:58 п.п., спустя 2 минуты 25 секунд


    ТС, а также на будущее: <p><select name="sect[]"> - не совсем корректно.
    Не нужно в масив заносить одно передаваемое значение. Имя присваивайте простой переменной, то есть: <p><select name="sect">, что приведет к тому, что проверка на adppp.php будет не данных из массива, а из переменной if ($sect=="Автомобили") {
    Кажеться всего лишь лишние байты информации (нагрузка на сервер), но это с этого все и начинается :)
    иногда надо name[] - когда делаешь multiple="multiple" …
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz Дек. 17, 2008, 10:56 д.п., спустя 10 часов 57 минут 33 секунды

    phpdude
    Ну в задачах автора этого нет, потому и написал, что "не совсем корректно" именно для данной задачи. Просто привыкнет человек допускать мелкие недочеты, и они потом копиться будут. Вот у меня так и получается - коллекционируются, заразы, и выводятся с трудом :)
    п.с. ну и стоит признаться, что на практике пока не доводилось использовать multiple. Может чем-то не тем занимаюсь :)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Дек. 17, 2008, 10:58 д.п., спустя 2 минуты 31 секунду


    phpdude
    Ну в задачах автора этого нет, потому и написал, что "не совсем корректно" именно для данной задачи. Просто привыкнет человек допускать мелкие недочеты, и они потом копиться будут. Вот у меня так и получается - коллекционируются, заразы, и выводятся с трудом :)
    п.с. ну и стоит признаться, что на практике пока не доводилось использовать multiple. Может чем-то не тем занимаюсь :)
    multiple часто надо бывает, и я наоборот считаю что дурной тон - использовать name="name" всегда использую нечто вида name="form[name]"

    зато потом имею всю форму в массиве чистом ;)

    $form = $_POST['form'];
    Сапожник без сапог
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz Дек. 17, 2008, 12:17 п.п., спустя 1 час 18 минут 50 секунд

    name="form[name]"

    вот как ни странно но это работает `только в пхп, и только в `пхп.
    все остальные языки прекрасно ловят массив из name="name"
    то есть это потом тоже плохо выводиться из мышления
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz Дек. 17, 2008, 12:54 п.п., спустя 36 минут 37 секунд

    вот помню, что именно из-за этого у меня была проблема, когда спамил одну форму…
    все умрут, а я изумруд

Пожалуйста, авторизуйтесь, чтобы написать комментарий!