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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.08.2009, 20:18   #1
kerbeross
 
Регистрация: 28.07.2009
Сообщений: 6
По умолчанию Укажите ошибку

подскажите в чем ошибка
PHP код:
if (isset ($_GET[id])) {$id = $_GET[id];}
<?php 
if (!isset($id))
{
$result mysql_query ("SELECT title,id FROM lessons");
$myrow mysql_fetch_array($result);

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

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

print <<<HERE
<form id="form1" name="form1" method="post" action="update_news.php">
  <p>
  <label>Заголовок новости
    <br />
    <input value= "
$myrow[title]" type="text" name="title" id="title"
/>
  </label>
  </p>
  
  .
  .
  .
HERE;
  }
?>

- в поле input значение value не выводидся title c базы , а если пишу так:
PHP код:
<input value= "<?php echo $myrow[title];?>" type="text" name="title" id="title">
, то оно в значение value пишет
PHP код:
<?php echo ; ?>
а не исполняет php код
kerbeross вне форума Ответить с цитированием
Старый 15.08.2009, 21:02   #2
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Цитата:
<input value= "$myrow[title]" type="text" name="title" id="title"
попробуй убрать пробел после value=
или так value="{$myrow[title]}"

И проверь $myrow[title] на empty!!!!

Последний раз редактировалось s.Creator; 15.08.2009 в 21:11.
s.Creator вне форума Ответить с цитированием
Старый 15.08.2009, 21:37   #3
kerbeross
 
Регистрация: 28.07.2009
Сообщений: 6
По умолчанию

действительно $myrow['title'] пустая.
а дело все оказалось намного проще зрение видать подводит...
("SELECT * FROM lessons WHERE id=$id]");
s.Creator, спасибо что направил на путь истинный

то-ли опять гдето пропустил очепятку, либо простудился конкретно и из-за насморка не соображаю ничего... вот такая конструкция, проверяю переменную тайтл - в ней есть новое значение, оно проходит запрос к базе на апдейт, потом опять спрашиваю через ехо - и получаю значение тоже самое, тоесть новое, смотрю в базу - а там старое, обновление не произошло!
PHP код:
<?php 
if (isset($title)&& isset ($meta_d) && isset ($meta_k) && isset ($date) && isset ($description) && isset ($text) && isset ($author)) 
{
/*обновляем поля если нужно*/
echo $title;    
$result mysql_query ("UPDATE lessons SET title='$title', meta_d='$meta_d', meta_k='$meta_k', date='$date', description='$description', text='$text', author='$author' WHERE id='$id'");
if (
$result == 'true') { echo "<p>Данные успешно обновлены</p>"; echo $title;} 
else {echo 
"<p>Ошибка :( данные не обновлены</p>";}
}

else {
echo 
"<p>Заполните все поля формы для обновления!</p>";
}

?>

Последний раз редактировалось SkyM@n; 15.08.2009 в 22:58.
kerbeross вне форума Ответить с цитированием
Старый 16.08.2009, 00:14   #4
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Проверьте во всех переменных, чему они равны, а также сделайте предварительно select * from ..., чтобы посмотреть, действительно есть ли такой id
motorway вне форума Ответить с цитированием
Старый 16.08.2009, 00:24   #5
sa_t_an
Пользователь
 
Регистрация: 27.04.2008
Сообщений: 38
По умолчанию

Код:
"UPDATE lessons SET title='$title', meta_d='$meta_d', meta_k='$meta_k', date='$date', description='$description', text='$text', author='$author' WHERE id='$id'"
Может дело в обработке парных и одиночных скобок?

Ведь echo '$id'; и echo "$id" ДВЕ РАЗНЫЕ ВЕЩИ

Код:
<?php
$id=111;
echo '$id';
echo "$id";
?>
Проверте...

поэтому я бы советовал конструкции вида
"UPDATE lessons SET title='$title'...............
заменять на
"UPDATE lessons SET title='".$title."'..............

"UPDATE lessons SET title='".$title."', meta_d='".$meta_d."', meta_k='".$meta_k."', date='".$date."', description='".$description."', text='".$text."', author='".$author."' WHERE id=".$id."; "

Обратите внимание на id=".$id." - вот так правильно обрабатываются числовые значения...
Об этом надо просто помнить и использовать сложение строк в PHP

А вообще самый простой способ проверить запрос - вставить вывод отладочной инфы вверху запроса, простейшим способом

Код:
echo "UPDATE lessons SET title='$title', meta_d='$meta_d', meta_k='$meta_k', date='$date', description='$description', text='$text', author='$author' WHERE id='$id'";

$result = mysql_query ("UPDATE lessons SET title='$title', meta_d='$meta_d', meta_k='$meta_k', date='$date', description='$description', text='$text', author='$author' WHERE id='$id'");
и echo выведет ваш запрос, после чего напрямую сделать запрос (скопировать получившуюся строку) в БД через допустим PHPMyAdmin

Последний раз редактировалось sa_t_an; 16.08.2009 в 00:43.
sa_t_an вне форума Ответить с цитированием
Старый 16.08.2009, 09:07   #6
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Цитата:
Сообщение от sa_t_an Посмотреть сообщение
...
А вообще самый простой способ проверить запрос - вставить вывод отладочной инфы вверху запроса, простейшим способом

Код:
echo "UPDATE lessons SET title='$title', meta_d='$meta_d', meta_k='$meta_k', date='$date', description='$description', text='$text', author='$author' WHERE id='$id'";

$result = mysql_query ("UPDATE lessons SET title='$title', meta_d='$meta_d', meta_k='$meta_k', date='$date', description='$description', text='$text', author='$author' WHERE id='$id'");
и echo выведет ваш запрос, после чего напрямую сделать запрос (скопировать получившуюся строку) в БД через допустим PHPMyAdmin
тогда уж лучше
Код:
upd_str = "UPDATE lessons SET title='$title', meta_d='$meta_d', meta_k='$meta_k', date='$date', description='$description', text='$text', author='$author' WHERE id='$id'";
echo upd_str;
$result = mysql_query (upd_str);
s.Creator вне форума Ответить с цитированием
Старый 16.08.2009, 13:11   #7
kerbeross
 
Регистрация: 28.07.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от sa_t_an Посмотреть сообщение
Может дело в обработке парных и одиночных скобок?

"UPDATE lessons SET title='".$title."'..............

Обратите внимание на id=".$id." - вот так правильно обрабатываются числовые значения...
Спасибо огромное, все получилось, но сложение строк не стал делать для всех переменных, зачем? там ведь текстовые значения, а у меня не проходили только $id из-за числовых значений в нем, учту на будущее это. спасибо еще раз!
kerbeross вне форума Ответить с цитированием
Старый 25.08.2009, 21:47   #8
kerbeross
 
Регистрация: 28.07.2009
Сообщений: 6
По умолчанию

не проходит поиск по ячейке
PHP код:
echo $search;        
$result mysql_query ("SELECT id,title,description,date,author,view,mini_img FROM data WHERE MATCH(text) AGAINST('".$search."')"); 
в запрос переменная входит, а дальше запрос не проходит говорит - нет совпадений... хотя они есть!
на колонку text поставил индекс FULLTEXT
kerbeross вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Укажите ошибку в коде. DeamoniC Помощь студентам 2 09.06.2009 15:32
Помогите!!! Укажите основные модули операционной системы Колек Помощь студентам 1 22.05.2009 15:44
Выдаёт ошибку: acos DOMAIN error,полсе нажатия окей,ещё одну ошибку pow OWERFLAW ERROR prikolist Общие вопросы C/C++ 4 10.04.2009 20:27
Посмотрите пожалуйста правильно ли написана программа,если нет укажите ошибку. Викулька Помощь студентам 1 10.12.2007 22:49