ФорумПрограммированиеPHP для идиотов → Редактирование сообщения

Редактирование сообщения

  • code9

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

    Spritz 19 июля 2009 г. 16:00, спустя 35 секунд

    Вот ломаю голову над этим. Сам процесс более менее мне понятен

    echo '<textarea cols="25" rows="3" name="msg">'$msg</textarea><br>';
    echo '<br><input type="submit" value="Изменить">


    вот допустим в этой форме редактируется сообщение которое я хочу отредактировать, это сообщение $msg.Что произходит после нажатия на изменить, тоже понятно.
    "UPDATE guestposts SET msg='".$msg."'"
    что то типа этого… Но вот что совершенно не понятно:(.КАК ВЫБИРАЕТСЯ ПЕРЕМЕННАЯ $msg, то есть как выбрать тот пост который я хочу отредактировать?? вот у админа на всем известных форумах бывает кнопка редактировать рядом с постом. Как такое осуществить? Может кто объяснит мне это в теории((
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 19 июля 2009 г. 15:59, спустя 23 часа 59 минут 25 секунд

    В форму редактирования добавь скрытое поле, в котором укажи ID изменяемого сообщения (у тебя же в таблице guestposts есть первичный ключ?). Соответственно, в SQL-запрос будет примерно таким:
    "UPDATE guestposts SET msg='$msg' WHERE id=$id"
  • code9

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

    Spritz 19 июля 2009 г. 16:06, спустя 6 минут 13 секунд

    Так выбираю я допустим сообщение по его id, и как это осуществить:( как ссылку 'изменить' создать? как она будет выглядить…
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 19 июля 2009 г. 16:09, спустя 3 минуты 32 секунды

    примерно так: edit.php?post_id=123
  • code9

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

    Spritz 19 июля 2009 г. 16:15, спустя 5 минут 26 секунд

    а вместо 123 переменная $id?
  • Givi

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

    Spritz 19 июля 2009 г. 16:21, спустя 6 минут 43 секунды

    именно так. Но в целом мог бы сначала и попробовать сам )
  • code9

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

    Spritz 19 июля 2009 г. 16:58, спустя 36 минут 52 секунды

    Ну я хотел сначала в теории понять,я ведь не знал как ссылка будет выглядеть).Как я понял,когда учишь php все нужно самому понимать) в учебниках такого нет
  • Givi

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

    Spritz 19 июля 2009 г. 17:17, спустя 19 минут 18 секунд

    code9, как раз таки это есть во всех учебниках, даже в говенных. Просто ты не внимателен… если вообще читал их.
  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz 20 июля 2009 г. 1:22, спустя 8 часов 4 минуты 10 секунд

    Ты в первом говнокоде ошибки допустил надо так

    echo '<textarea cols="25" rows="3" name="msg">'. $msg .'</textarea><br>';
    echo '<br><input type="submit" value="Изменить">';
  • code9

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

    Spritz 20 июля 2009 г. 9:24, спустя 8 часов 2 минуты 16 секунд


    Ты в первом говнокоде ошибки допустил надо так

    echo '<textarea cols="25" rows="3" name="msg">'. $msg .'</textarea>
    ';
    echo '
    <input type="submit" value="Изменить">';


    Да я уже на зло тебе стану отличным пыхарем))чем не мотивация
    Спустя 341 сек.
    Вот к примеру у меня есть форма в файле install.php

    echo '<form action="install.php" method="POST">
    <input name="login" type="text"><br>
    <input name="password" typy="password"><br>
    <input name="password2" type="password"><br>
    <input name="submit" type="submit" value="Установить">
    </form>';
    она находится в папке test1.ru/admin. У нее action на саму себя.Но вот если я захочу чтобы данные обработал скрипт который в корне (test1.ru/cheta.php), как указать action? То есть путь.
  • smackthat

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

    Spritz 20 июля 2009 г. 9:32, спустя 7 минут 45 секунд

    то надо в action прописать cheta.php, если я правильно вопрос понял
    Спустя 78 сек.
    а вроде понял, надо написать ../cheta.php
    2 точки это подняться на уровень выше в дереве каталогов
  • code9

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

    Spritz 20 июля 2009 г. 10:06, спустя 34 минуты 53 секунды


    примерно так: edit.php?post_id=123


    А post_id это что?


    $query = "SELECT *
               FROM `posts`
               ORDER BY `id` DESC
               LIMIT {$start}, {$nums}";

    $sql = mysql_query($query) or die(mysql_error());

    while ($row = mysql_fetch_assoc($sql)) {
       // здесь выводим наши записи из базы
    $str=$row["text"];
       $mod_str = wordwrap($str,20,"\t");
       $id=$row["id"];
       if($lvl==1) { echo '<a href="edit.php?post_id=$id">редактировать</a><br>';}


    Так верно?
    Спустя 122 сек.

    то надо в action прописать cheta.php, если я правильно вопрос понял
    Спустя 78 сек.
    а вроде понял, надо написать ../cheta.php
    2 точки это подняться на уровень выше в дереве каталогов


    а почему тогда такая ссылка не прокатывает <a href="../index.php">INDEX</a> ?
    Спустя 1586 сек.
    И как на странице edit.php мне это сообшение взять?
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 20 июля 2009 г. 11:00, спустя 53 минуты 15 секунд

    Так верно?

    йес ить изь

    И как на странице edit.php мне это сообшение взять?

    - ссылка edit.php?id=123 (или 456 или 789, $id короче)
    - переходим по ней - в $_GET['id'] - у нас 123 (или 456 или 789 или …)
    - достаем из нужную запись из базы по этому ID (SELECT … WHERE id=$id)
    - выводим её в форме (в той которая <form>…)
    - в этой же форме вставляем скрытое поле "id", куда записываем ('<input type="hidden" value="' . $id . '" />")
    - отправляем форму и у нас в $_POST есть изменная запись и тот самый id (который 123, или 456, ну ты понял я думаю)

  • code9

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

    Spritz 20 июля 2009 г. 11:58, спустя 58 минут 6 секунд

    Ну почему не работает((

    <?

    include("connect.php");


    $query=mysql_query("SELECT text, id FROM posts WHERE id='".$_GET["post_id"]."'");

    $data=mysql_fetch_array($query);



    echo '<form action="edit.php" method="POST">
    <textarea name="text">'.$data["text"].'</textarea><br>
    <input type="hidden" value="'.$_GET["post_id"].'"/>
    <input type="submit" name="submit" value="Редактировать"></form>';

    $text=$_POST["text"];

    mysql_query("UPDATE potst SET text='".$text."' WHERE id='".$_GET["post_id"]."'");



    ?>
    Спустя 79 сек.
    не обновляет сообщение
  • Givi

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

    Spritz 20 июля 2009 г. 12:00, спустя 2 минуты 34 секунды

    code9, …mysql_query("UPDATE potst… - ищи ошибку

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