Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2010, 22:05   #1
kaviga
Пользователь
 
Аватар для kaviga
 
Регистрация: 22.01.2009
Сообщений: 92
Печаль Реализация редактирования БД из браузера в php

Доброго времени суток,у меня возникла проблема,нужно сделать так что бы из браузера можно было отредактировать БД,т.е...тыкаешь по ссылки,и выдается все ячейки которые были внутри.Ну я попробовал реализовать 2 файлами,но возникла ошибка,когда тыкаешь редактировать,по теории скрипт должен вывести заголовки определенных файлов(скрипт это делает)но при попытке выбрать файл(т.е. кликаешь по ссылки,скрипт должен вывести таблицу с заполнением)но тут проблема...
Скрипт после нажатия,тупо перезагружается добавляет id=%s(ну за место %s должен id стоять)и все,таблицу не выводить..Самое что интересное,он не дает сведений об ошибки,т.е я даже не могу понять где ошибка.И далее будет код,но говорю сразу,это должно было реализовано в двух файлах,но:
1)выводить ссылки
2)показывать таблицу с тестом(таблица для редактирования)
должен именно 1 файл
вот тут код
PHP код:
if(!isset ($id))
{

/* Соединяемся с базой */
$result mysql_query("SELECT title,id FROM news");
$myrow mysql_fetch_array($result);

do
{
printf("<p><a href='edit_news.php?id=%s'>%s</a></p>",$myrow["id"],
$myrow["title"]);


}
while(
$myrow mysql_fetch_array($result));
     
}
else
{

$result mysql_query("SELECT * FROM news WHERE id = $id");
$myrow mysql_fetch_array($result);


print <<<HERE
  <form id="form1" method="post" action="update_news.php">
              <p>
              <label>Введите название <br />
              <input value="
$myrow[title]"type="text" name="title" id="title" />
              <br />
              </p>
              <p>
              Краткое описание <br />
             <inputvalue="
$myrow[meta_d]" type="text" name="meta_d" id="meta_d" />
              <br />
              </p>
              <p>
             Введите ключевые слова
             <br />
             <input value="
$myrow[meta_k]" type="text" name="meta_k" id="meta_k" />
              <br />
              </p>
              <p>
              Введите дату<br />
              <input value="
$myrow[date]" name="date" type="text" id="date" value="2010-01-04" />
              <br />
              </p>
              <p>
              Краткое описание(с тегами обзаца)
              <textarea name="descriptionte" id="descriptionte" cols="40" rows="5">"
$myrow[descriptionte]"</textarea>
              </p>
              <p>
              Введите полный текст новости
              <textarea name="text" id="text" cols="40" rows="20">"
$myrow[text]"</textarea>
              </p>
              <p>
             Введите ваше ФИО <br />
             <input "
$myrow[author]" type="text" name="author" id="author" />
             </p>
              </label>
              <input name="id" type="hidden" value="
$myrow[id]" />
              <p>
                <input type="submit" name="button" id="button" value="Сохранить Изменение" />
                <label></label>
              
      </form>
HERE;
}






?> 
это как бы именно скрипт
если что напишите в ЛС или ICQ (четыре 72 пять 5 два 8 шестнадцать)
пишите на тот же адрес
kaviga вне форума Ответить с цитированием
Старый 04.01.2010, 22:19   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Для начала поставьте
Код:
ini_set ('display_errors', 'On');
motorway вне форума Ответить с цитированием
Старый 04.01.2010, 22:27   #3
kaviga
Пользователь
 
Аватар для kaviga
 
Регистрация: 22.01.2009
Сообщений: 92
По умолчанию

дело то это не поменяет
пишите на тот же адрес
kaviga вне форума Ответить с цитированием
Старый 04.01.2010, 22:31   #4
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Ну хотя бы ошибку увидите, и я смогу посмотреть, в чем она
motorway вне форума Ответить с цитированием
Старый 04.01.2010, 22:31   #5
kaviga
Пользователь
 
Аватар для kaviga
 
Регистрация: 22.01.2009
Сообщений: 92
По умолчанию

ну попробовал,ничего не вывела...все так же...
пишите на тот же адрес
kaviga вне форума Ответить с цитированием
Старый 04.01.2010, 22:40   #6
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

я пока не очень понял смысл этого скрипта, что задумано, но советую просто поставить в тех местах, где что-то должно появится, вывод значений переменных. Вот и проверите, где неправильно
motorway вне форума Ответить с цитированием
Старый 04.01.2010, 23:25   #7
spein
Программист
Форумчанин
 
Аватар для spein
 
Регистрация: 27.02.2009
Сообщений: 505
По умолчанию

error_reporting("E_ALL"); в начале скрипта напиши и все покажет=)
there are no limits when you're software engineer
spein вне форума Ответить с цитированием
Старый 05.01.2010, 00:13   #8
Муж Виктории
Новичок
Джуниор
 
Регистрация: 04.01.2010
Сообщений: 3
По умолчанию

ну вообщем если правильно понял привожу пример правильного скрипта на подобе который у меня на сайте
PHP код:
   <td width="730" valign="top" align="center">
         <? 

if (!isset($id))

{
$result mysql_query("SELECT title,id FROM news");      
$myrow mysql_fetch_array($result);

do 
{
printf ("<p><a href='edit_news.php?id=%s'>%s</a></p>",$myrow["id"],$myrow["title"]);
}

while (
$myrow mysql_fetch_array($result));

}

else

{

$result mysql_query("SELECT * FROM news WHERE id=$id");      
$myrow mysql_fetch_array($result);

echo 
"<h3 align='center'>Редактирование новостей</h3>";

print <<<HERE

<form name='form1' method='post' action='update_news.php'>
         <p>
           <label>Введите описание news<br>
             <input value="
$myrow[title]" type="text" style="background:#000000; border:solid 1px #ffcc00;; color:#ffcc00;" name="title" id="title">
             </label>
         </p>
         <p>
           <label>Введите ссылку на news<br>
           <input value="
$myrow[link]" type="text" style="background:#000000; border:solid 1px #ffcc00;; color:#ffcc00;" name="link" id="link">
           </label>
         </p>
        
         <input name="id" type="hidden" value="
$myrow[id]">
         
         <p>
           <label>
           <input type="submit" name="submit" style="background:#04004c; color:#ffcc00; border:1px solid #04004c; font-size:12px;" id="submit" value="Сохранить изменения">
           </label>
         </p>
       </form>



HERE;
}


?>
ну а теперь файл обработчика update_news.php'
PHP код:
 <? include("lock.php");
include (
"blocks/bd.php");
if (isset(
$_POST['title']))       
{
$title $_POST['title']; 

if (
$title == ''
{
unset(
$title);
}  

}

/* Если существует в глобальном массиве $_POST['title'] опр. ячейка, то мы создаем простую переменную из неё. Если переменная пустая, то уничтожаем переменную.   */
if (isset($_POST['link']))      {$link $_POST['link']; if ($link == '') {unset($link);}}


if (isset(
$_POST['id']))      {$id $_POST['id'];}
 
?>
это если хост не поддерживает прямую передачу переменных а теперь сам обработчик
PHP код:
<?php 
if (isset($title) && isset($link))
{
/* Здесь пишем что можно заносить информацию в базу */
$result mysql_query ("UPDATE news SET title='$title', link='$link'  WHERE id='$id'");

if (
$result == 'true') {echo "<p>Ваша реклама успешно обновлена!</p>";}
else {echo 
"<p>Ваша реклама не обновлена!</p>";}


}         
else 

{
echo 
"<p>Вы ввели не всю информацию, поэтому новость в базе не может быть обновлена.</p>";
}
         
         
         
         
?>

Последний раз редактировалось Муж Виктории; 05.01.2010 в 19:50. Причина: Ошибка в коде
Муж Виктории вне форума Ответить с цитированием
Старый 05.01.2010, 15:31   #9
MarsNsk
 
Регистрация: 03.01.2010
Сообщений: 3
По умолчанию

А не проще вместо
Код:
if (isset($_POST['title']))        
{ 
$title = $_POST['title'];  

if ($title == '')  
{ 
unset($title); 
}   

}
сделать просто
Код:
if (isset($_POST['title']) && $_POST['title']!='')
{
#выполняется все нужное без создания лишних переменных
}
Можно по-моему и одной функцией даже сразу проверить пустая ли переменная, вылетело только какой.
MarsNsk вне форума Ответить с цитированием
Старый 05.01.2010, 19:53   #10
Муж Виктории
Новичок
Джуниор
 
Регистрация: 04.01.2010
Сообщений: 3
По умолчанию

Цитата:
Сообщение от MarsNsk Посмотреть сообщение
А не проще вместо
Код:
if (isset($_POST['title']))        
{ 
$title = $_POST['title'];  

if ($title == '')  
{ 
unset($title); 
}   

}
сделать просто
Код:
if (isset($_POST['title']) && $_POST['title']!='')
{
#выполняется все нужное без создания лишних переменных
}
Можно по-моему и одной функцией даже сразу проверить пустая ли переменная, вылетело только какой.
Проще, но я опять повторюсь, есть хостинги которые не поддерживают прямую передачу переменных. поэтому одной проверки будет мало
Муж Виктории вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защита от редактирования программным путем paratruper17 Microsoft Office Word 4 05.11.2009 10:55
Дата и время редактирования строки! PapaHedgehog Microsoft Office Excel 2 28.10.2009 20:49
Передача id для редактирования D-Snaker PHP 3 23.08.2009 22:45
TStringGrid цвет фона в моде редактирования TwiX Общие вопросы Delphi 0 23.08.2009 21:29
запрет редактирования AnGrig Компоненты Delphi 3 18.10.2007 11:37