Как в модуль Files добавить 5 полей ввода данных типа...
Здравствуйте Уважаемые!
Вопрос: Как в модуль Files добавить 5 полей ввода данных типа... 1) Тип Лицензии: 2) Язык интерфейса: 3) Oc 1 // Тип операционной системы 4) Ос 2 5) Ос 3 И как результат - добавить в базу соответствующие таблицы! З.Ы. Имхо! Модуль Files станет более информативным! Огромная просьба к Вам Много Уважаемые - Если гуру в ентой теме, дать ответ по конкретнее! |
Открываем модуль и таблицу в БД.
Находим в БД title varchar(100) (можно поставить 255, думаю больше для этих полей и ненужно). По аналогии делаем 5 полей в БД lic varchar(255) NOT NULL default '', lang varchar(255) NOT NULL default '', oc1 varchar(255) NOT NULL default '', oc2 varchar(255) NOT NULL default '', oc3 varchar(255) NOT NULL default '', затем открываем админку и тоже по аналогии с title делаем эти поля в функциях редактирования и создания (добавляем поля ввода для текста и присваиваем вводимые данные переменной). Затем в функции записи добавляем эти переменные (тоже см. как сделано title). После того как админка сделана, проверяем запись. Если все записывается и читается, то 90% уже сделано. Открываем сам модуль, выводим значения из базы и работаем с ними как нам угодно. P. S. Вот только непонятно зачем делать 3 поля под ОС. Можно просто сделать цифирки, а в коле уже приравнять их к определенной системе. 1 - Линукс, 2 - Виндовс ХР, 3 - Макинтошь, 4 - и т.д. Т.е в БД пойдет в запись цифра, а при выводе информации она будет равна нужной ОС. |
Спасибо за ответ!
Три поля нужны для того: 1) Win9x/Me 2) Win2k/NT 3) WinXP Не всё же пишется для XP! P.S. На счёт заходим в админку т.е в Модуле Files папка Admin в ней Admin.php ? |
угу, она самая, Admin.php
Понятно что, не все для ХР. зачем для каждого названия делать свое поле? Какая необходимость, это же текстовые данные. Делаем одно поле - `OC` int(1) NOT NULL default '0', пишим туда цифирки (чтобы вручную каждый раз не писать Win9x/Me и др. затем (если вы четко определились что у вас и как будет, присваиваем каждой цифре свою сисетму). Зашивание данных в код не совсем правильно, но иногда это самый простой вариант. Т.е. прописываем потом значение системы: Если в БД значение 1 - то Win9x/Me если значение 2 - то Win2k/NT иначе будет ХР. |
А возможно сделать не поля ввода типа ОС а выпадающий список с возможными вариантами!
Если можно то по возможности маленький пример кода для admin.php - я не силён программировании но с грамотной подсказкой - без проблем сотворю! |
Можно и так, в БД есть только два вида ввода данных: обычный и мульти, в вашем случае хоть выпадающее меню, хоть текстовое поле, хоть цифра - принцип ввода тот-же (обычный), так что можете смело переделывать.
Пример: Код:
|
А если после добавления файла данные не записываются - что и где надо проверить! |
в админ файле (admin.php), проверяем и перепроверяем запись.
в саму таблицу то поля добавили?. если последовательность записи не совпадет с полями в бд, то записываться не будет, или будет неверно. |
Проблема точно в записи, а не в выводе? Преверьте первым делом добавляются-ли новые поля в phpMyAdmin.
Если нет - ошибка в коде функции обработчика, или в функции не указаны поля ввода. Если оператором switch пользуетесь - возможно в case поля ввода не прописали. _______________ 2 Alexander-V-Sh: Быстрее меня нацарапал :smile: |
В бд всё добавил - и phpMyAdmin ручками в поля вписываю и в сё отображается окей значит с чтением из БД всё норма! В case прописал: switch ($op) { case "file_save": file_save($title, $lic, $lang, $oc, $description, $cid, $filelink, $author, $authormail, $authorurl, $version, $filesize); break; case "file_edit_save": file_edit_save($lid, $title, $lic, $lang, $oc, $description, $cid, $filelink, $author, $authormail, $authorurl, $version, $filesize); break; } Сам Admin.php к к посту не прикрючивается, можно как то его вам для редактирования выслать? |
Спасибо огромное! всё разобрался! с дури понаписал куды не поподя а надо было только в три функции всё прописать да и про case не забыть!
case "file_save": file_save($title, $lic, $lang, $oc, $description, $cid, $filelink, $author, $authormail, $authorurl, $version, $filesize); break; case "file_edit_save": file_edit_save($lid, $title, $lic, $lang, $oc, $description, $cid, $filelink, $author, $authormail, $authorurl, $version, $filesize); break; case "file_add_save": file_add_save($lid, $title, $lic, $lang, $oc, $description, $cid, $filelink, $author, $authormail, $authorurl, $version, $filesize); break; Всё пишет и читает из БД! Ещё раз Респект вам! Alexander-V-Sh, Alie! |
Если вставляю текстовое поле - то всё окей в БД пишется и читается!
Но решил сделать выпадающий список и не фига не пашет, вразумите если что не так Пример: ."<b>"._FILEVEROS."</b><br><select> <option name='oc' value='$f_oc'></option></br></select> Сам список пашет но в БД не пишет! |
показывайте вашу форму...
|
function edit_files($lid) {
global $prefix, $db; $sql = "SELECT cid, title, lic, lang, oc, description, url, filesize, version, name, email, homepage, status FROM ".$prefix."_files WHERE lid='$lid'"; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $f_cid = $row[cid]; $f_title = $row[title]; $f_lic = $row[lic]; $f_lang = $row[lang]; $f_oc = $row[oc]; $f_description = $row[description]; $f_url = $row[url]; $f_filesize = $row[filesize]; $f_version = $row[version]; $f_name = $row[name]; $f_email = $row[email]; $f_homepage = $row[homepage]; $f_status = $row[status]; include("header.php"); GraphicAdmin(); OpenTable(); echo "<center><b>"._FILESADMIN."</b></center>\n"; CloseTable(); echo "<br>"; OpenTable(); echo "<center><b>"._FILEEDIT."</b></center><br><br>" ."<form action=\"admin.php\" method=\"post\">" ."<b>"._TITLE.":</b><br><input type=\"text\" name=\"title\" size=\"50\" value=\"$f_title\"><br><br>" ."<b>"._CATEGORY.":</b><br>" ."<select name=\"cid\"><option value=\"0\">"._HOMEFILES."</option>"; $sql = "select cid, title, parentid from ".$prefix."_files_categories order by parentid,title"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $cid2 = $row[cid]; $title = $row[title]; $parentid2 = $row[parentid]; if ($parentid2!=0) $title=getparent($parentid2,$title); if ($cid2 == $f_cid) { $shel = "selected"; } echo "<option value=\"$cid2\" $shel>$title</option>"; } echo "</select><br><br>"; echo "<b>"._SUBTITLE.":</b><br>" ."<textarea name=\"description\" cols=\"50\" rows=\"10\">$f_description</textarea><br><br>" ."<b>"._FILEAUTOR."</b><br><input type=\"text\" name=\"author\" size=\"50\" value=\"$f_name\"><br><br>" ."<b>"._FAUEMAIL."</b><br><input type=\"text\" name=\"authormail\" size=\"50\" value=\"$f_email\"><br><br>" ."<b>"._FAUURL."</b><br><input type=\"text\" name=\"authorurl\" size=\"50\" value=\"$f_homepage\"><br><br>" ."<b>"._FILELINK.":</b><br><input type=\"text\" name=\"filelink\" size=\"50\" value=\"$f_url\"> [ <a href=\"$f_url\" target=\"_blank\">"._TESTLINK."</a> ]<br><br>" ."<b>"._FILEVERSION."</b><br><input type=\"text\" name=\"version\" size=\"10\" value=\"$f_version\"><br><br>" ."<b>"._FILEVEROS."</b><br><select> <option name='oc' value='$f_oc'></option> <option name='oc' value='$f_oc'>Win2k/NT</option> <option name='oc' value='$f_oc'>Win9x/Me</option> <option name='oc' value='$f_oc'>Linux</option> <option name='oc' value='$f_oc'>MacOS</option> <option name='oc' value='$f_oc'>FreeBSD</option> <option name='oc' value='$f_oc'>Win9x/Me/2k/NT/XP</option> </select><br><br>" // Поле для ввода "Лицензия" ."<b>"._FILELISENSE."</b><br><select> <option name='lic' value='$f_lic'></option> <option name='lic' value='$f_lic'>Freeware</option> <option name='lic' value='$f_lic'>FreeSoftware</option> <option name='lic' value='$f_lic'>Shareware</option> <option name='lic' value='$f_lic'>Trialware</option> <option name='lic' value='$f_lic'>Commercialware</option> </select><br><br>" // Поле для ввода "Язык" ."<b>"._FILELANG."</b><br><select> <option name='lang' value='$f_lang'></option> <option name='lang' value='$f_lang'>Русский</option> <option name='lang' value='$f_lang'>Английский</option> <option name='lang' value='$f_lang'>Мультиязычный</option> </select><br><br>" //."<b>"._FILELISENSE."</b><br><input type=\"text\" name=\"lic\" size=\"10\" value=\"$f_lic\"><br><br>" //."<b>"._FILELANG."</b><br><input type=\"text\" name=\"lang\" size=\"10\" value=\"$f_lang\"><br><br>" //."<b>"._FILEVEROS."</b><br><input type=\"text\" name=\"oc\" size=\"10\" value=\"$f_oc\"><br><br>" ."<b>"._FILESIZE.":</b><br><input type=\"text\" name=\"filesize\" size=\"10\" value=\"$f_filesize\"><br><br>" ."<input type=\"hidden\" name=\"lid\" value=\"$lid\">" ."<input type=\"hidden\" name=\"op\" value=\"file_edit_save\">" ."<input type=\"submit\" value=\""._SAVEFILEED."\">" ."</form>"; CloseTable(); echo "<br>"; include("footer.php"); } |
Исправляйте:
Код:
На: Код:
Ниже находим: Код:
Исправляем: Код:
Идём ниже: Код:
Исправляем на: Код:
______________________________ Я пример не прокоментировала, да ещё и с переменными... :jump: В исправлении я думаю всё чётко видно, но всё-же прокоментирую на будущее: Код:
_____________________________ P.S. Один момент: в следующий раз когда будете вставлять любой код, вставляйте его в тэг CODE. Правила форума :wink: Заодно желательно свои предыдущие посты поправить, пока админ. не увидел :smile: Удачи в работе! |
Часовой пояс GMT +4, время: 20:50. |
Copyright © 2005 by Soniks