Перейти к содержимому

Реферальная программа Мегаплана


Не определяет идентификатор

#1 Banderas

Banderas
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1
0

Отправлено 10 Февраль 2011 - 01:05

Пишу редактор статей, код
		<?php 
if (!isset($id)) {
$result = mysql_query("SELECT id,title FROM articles");
$myrow = mysql_fetch_array($result);

do {
printf ("<hr><a href='edit_article.php?id=%s'>%s</a></br>", $myrow['id'], $myrow['title']);
}
while ($myrow = mysql_fetch_array($result));
} else {
echo '$id'.$id;
$result = mysql_quert("SELECT * FROM articles WHERE id=$id");
$myrow = mysql_fetch_array($result);

print <<<HTML
<form action='update_article.php' method='post'>
Введите название статьи</br>
<input value=$myrow[title] type='text' name='title' /></br>
<input value=$myrow[id] type='text' name='id' /></br>
Введите содержание статьи</br>
<textarea value=$myrow[text] name='text' cols='50' rows='12'></textarea></br>
<input type='submit' name='submit' value='Редактировать статью' />
</form>
HTML;
}
?>


Делаю пока что по уроку, в котором Попов говорит, что должна создаваться переменная $id, но я даже не знаю откуда она должна взяться, наверно с $myrow['id'], но ничего не создается....

По алгоритму должно быть так, на странице edit_article.php выводится список статей, при клике мы переходи на страничку edit_article.php?id=$myrow['id'], где $myrow['id'] - идентефикатор статьи. Если идентефикатор уже существует, тоесть задан (1,2,3, ... ), то переходим на страницу редактирования статьи, с этим идентефикатором. Вроде все, спасибо =)

 

 

  • 0

#2 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 10 Февраль 2011 - 07:17

$result = mysql_quert("SELECT * FROM articles WHERE id=$id");
поуствуй разницу
$result = mysql_query("SELECT * FROM articles WHERE id=$id");


так id надо получить из $_GET['id'] наверное?
$id=intval($_GET['id']);

  • 0

#3 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 10 Февраль 2011 - 08:51

То куда вставить этот???

$id=intval($_GET['id']);


  • 0


#4 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 10 Февраль 2011 - 10:31

перед
if (!isset($id)) {


но у тебя весь код коряво написан
  • 0

#5 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 10 Февраль 2011 - 15:50

Спасибо, уже увидел..((
Поправил код, нормально открывает страницы редактирования статьи, но данные не выводятся или выводятся частично и криво. Понял что ошибка теперь между тегами <<<HTML плохой код HTML;
Как мне исправить? И какую функцию посоветуете использовать?
		<?php 
$id = intval($_GET['id']); // создал переменную
if (empty($id)) { // проверяем заполнена ли она
$result = mysql_query("SELECT id,title FROM articles");
$myrow = mysql_fetch_array($result);

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

} else {
$result = mysql_query("SELECT * FROM articles WHERE id='$id'");
$myrow = mysql_fetch_array($result);


print <<<HTML
<form action="update_article.php" method="post">
Введите название статьи</br>
<input value="$myrow[title]" type="text" name="title" /></br>
Введите ключи</br>
<input value="$myrow[meta_k]" type="text" name="metak" /></br>
Введите мета-описание</br>
<input value="$myrow[meta_d]" type="text" name="metad" /></br>
Введите автора</br>
<input value="$myrow[author]" type="text" name="author" /></br>
Дата добавления статьи (yyyy-mm-dd)</br>
<input value="$myrow[date]" type="text" name="date" /></br>
<input value="$myrow[id]" type="hidden" name="id" /></br>
Введите краткое содержание статьи</br>
<textarea value="$myrow[description]" name="description" cols="50" rows="12"></textarea></br>
Введите содержание статьи</br>
<textarea value="addslashes($myrow[text])" name="text" cols="50" rows="12"></textarea></br>
<input type="submit" name="submit" value="Редактировать статью" />
</form>
HTML;
}
?>

  • 0


#6 almatar

almatar
  • Пользователь
  • 203 сообщений
  • Репутация: 0

Отправлено 10 Февраль 2011 - 15:56

Внимательней изучайте курс, там всё подробно и детально показано.
  • 0

#7 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 10 Февраль 2011 - 16:15

В курсе много ошибок. К тому же он работает на дримвивере, а я в нотпаде. К томуже у меня вывод форм как в курсе...


  • 0


#8 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 10 Февраль 2011 - 16:24

не важно в чем ты работаешь, важно, что у тебя голове
ну например:
<textarea value="$myrow[description]" name="description" cols="50" rows="12"></textarea>

полное незнание html и php, двоечник
надо так:
<textarea name="description" cols="50" rows="12">".$myrow[description]."</textarea>

а тут:
<input value="$myrow[date]" type="text" name="date" /></br>

надо:
<input value="".$myrow[date]."" type="text" name="date" /></br>


ну еще экранировать надо кавычки
  • 0

#9 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 13 Февраль 2011 - 14:31

Banderas,

Поправил код, нормально открывает страницы редактирования статьи, но данные не выводятся или выводятся частично и криво. Понял что ошибка теперь между тегами <<<HTML плохой код HTML;

про $_GET тебе сказали не верно. Всё зависит от типа, которым передаются данные, бывают разные. Самые распространенные из них GET и POST. У тебя в коде используется POST, посмотри на атрибут method тега form
	<form action='update_article.php' method='post'>

Используй $_POST['id'].

Как мне исправить? И какую функцию посоветуете использовать?

Как выодить данные, всё зависит от человека. Я всегда использую echo + sprintf где нужно. Советую не сразу бросаться выводить данные на экран. А сначала записывать их в какую-нить переменную, заполнять её. Если нужно будет, затем можно эти данные отформатировать по нужному алгоритму, а затем уже вывести на экран.
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru