Изменение данных mysql через формочку в php

Тема в разделе "PHP", создана пользователем milanello, 31 июл 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. milanello

    milanello Создатель

    Регистр.:
    28 мар 2009
    Сообщения:
    24
    Симпатии:
    1
    вообщем у меня такая проблема
    есть страничка пхп в которой выводятся данные из mysql таблицы.
    данные такого типа:


    <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/utPsgXOqUL4&hl=ru&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/utPsgXOqUL4&hl=ru&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>

    какой тип данных нужен для таблицы в mysql?
    далее еще один вопрос
    я хочу менять данные етой таблицы прямо на сайте через формочку,
    тоисть ввел в формочку другой код и он заменил то что был ранее
    вообщем если кто знает как ето сделать помогите плиз
     
  2. antn

    antn Постоялец

    Регистр.:
    11 июл 2009
    Сообщения:
    104
    Симпатии:
    30
    Должен подойти VARCHAR нужной длины.

    По второй части: UPDATE

    PHP:
    mysql_query(sprintf('UPDATE `table` SET `field`="%s" WHERE 1/*<condition>*/'mysql_escape_string($_GET['form_field'])));
     
  3. kozax89

    kozax89 Постоялец

    Регистр.:
    12 июл 2009
    Сообщения:
    135
    Симпатии:
    4
    тип данных бери text

    выборку из юд делай так как тут


    $result = mysql_query ("SELECT * FROM название таблицы WHERE id='$id'",$db);
    $sum = mysql_fetch_array($result);


    причем вместо id='$id', пиши ту переменную которую отсылаешь на обработчик.

    потом выводи форму указывая в ней


    <textarea name=\"название текстареи\" id=\"ID текстареи\" cols=\"50\" rows=\"10\">".$sum['description']."</textarea>


    вместо $sum['description'] пиши ту ячейку которую заменяешь. Теперь, в форме сможешь менять текст.

    Данные из формы высылай в обработчик который впишит измененые данные в БД.


    $result = mysql_query("UPDATE название таблицы SET description='$description' WHERE id='$id'");


    Попробуй из этого собрать то что тебе нужно, если будут проблемы, давай сюда код который сделаешь, разберемя.
     
  4. milanello

    milanello Создатель

    Регистр.:
    28 мар 2009
    Сообщения:
    24
    Симпатии:
    1
    неполучается

    чтото у меня нечего не выходит,
    незнаю даже что нитак склеил я то что ты мне накатал вставил свои данные но нечего не вышло
    скорее всего натупил

    PHP:
    <?php 

    $db 
    mysql_connect("localhost","бд","пароль");
    mysql_select_db("бд",$db);
    $result mysql_query ("SELECT * FROM ekran WHERE kod='$kod'",$db);
    $sum mysql_fetch_array($result);
    <
    textarea name=\"nazvanie\" id=\"1\" cols=\"50\" rows=\"10\">".$sum['kod']."</textarea>
    $result = mysql_query("UPDATE ekran SET description='$kod' WHERE kod='$kod'");




    ?>
     
  5. kozax89

    kozax89 Постоялец

    Регистр.:
    12 июл 2009
    Сообщения:
    135
    Симпатии:
    4
    Тебе надо тут 3 файла PHP

    Вот эти скрипты клей между <body></body>

    Файл 1.php
    PHP:
    <?

    $kod 'Вставляешь в переменную данные';

    echo
    "<a href=\"2.php?kod=".$kod."\">Я СЦЫЛКО</a>"//Ссылка на форму 

    ?>
    Файл 2.php
    PHP:
    <?

    if (isset(
    $_GET['kod'])) {$kod $_GET['kod'];}

    $db mysql_connect("localhost","бд","пароль");
    mysql_select_db("бд",$db);//Подключаешься к базе

    $result mysql_query ("SELECT * FROM ekran WHERE kod='$kod'",$db);
    $sum mysql_fetch_array($result);//Создаешь таблицу данных из бд

    echo "
    <form action=\"3.php\" method=\"get\" name=\"edit\" target=\"_self\">
    <textarea name=\"kod\" id=\"kod\" cols=\"50\" rows=\"10\">"
    .$sum['kod']."</textarea>
    <input type=\"submit\" name=\"send\" id=\"send\" value=\"Впиши в БД\">
    </form>"
    ;//Форма эдиции ячейки

    ?>
    файл 3.php

    PHP:
    <?

    if (isset(
    $_GET['kod'])) {$kod $_GET['kod'];}

    $db mysql_connect("localhost","бд","пароль");
    mysql_select_db("бд",$db);//Подключаешься к базе

    if (isset ($kod))//Если существует переменная $kod то...
        
    {
    $result mysql_query("UPDATE ekran SET kod='$kod' WHERE kod='$kod'");//Заменяешь ею ячейку kod в таблице ekran

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

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

    ?>
     
  6. milanello

    milanello Создатель

    Регистр.:
    28 мар 2009
    Сообщения:
    24
    Симпатии:
    1
    все вписал в ети 3 файла пхп но они нечего не делают:(
    изменил пароли на бд и логин и бд
    в базе данных неменяет таблицу ekran в которой есть 1 пункт с двумя данными id и kod
    kod ето текст мой которій нужно изменить
     
  7. kozax89

    kozax89 Постоялец

    Регистр.:
    12 июл 2009
    Сообщения:
    135
    Симпатии:
    4
    Проверь ещн раз, файлы должны выглядеть так

    Файл 1.php
    PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Документ без названия</title>
    </head>

    <body>
    <?

    $kod = '
    <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/utPsgXOqUL4&hl=ru&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/utPsgXOqUL4&hl=ru&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
    ';

    echo"<a href=\"2.php?kod=".$kod."\">Я СЦЫЛКО</a>"; //Ссылка на форму 

    ?>
    </body>
    </html>
    Файл 2.php
    PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Документ без названия</title>
    </head>

    <body>
    <?

    if (isset($_GET['kod'])) {$kod = $_GET['kod'];}

    $db = mysql_connect("localhost","бд","пароль");
    mysql_select_db("бд",$db);//Подключаешься к базе

    $result = mysql_query ("SELECT * FROM ekran WHERE kod='$kod'",$db);
    $sum = mysql_fetch_array($result);//Создаешь таблицу данных из бд

    echo "
    <form action=\"3.php\" method=\"get\" name=\"edit\" target=\"_self\">
    <textarea name=\"kod\" id=\"kod\" cols=\"50\" rows=\"10\">".$sum['kod']."</textarea>
    <input type=\"submit\" name=\"send\" id=\"send\" value=\"Впиши в БД\">
    </form>";//Форма эдиции ячейки

    ?>
    </body>
    </html>
    файл 3.php

    PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Документ без названия</title>
    </head>

    <body>
    <?

    if (isset($_GET['kod'])) {$kod = $_GET['kod'];}

    $db = mysql_connect("localhost","бд","пароль");
    mysql_select_db("бд",$db);//Подключаешься к базе

    if (isset ($kod))//Если существует переменная $kod то...
        {
    $result = mysql_query("UPDATE ekran SET kod='$kod' WHERE kod='$kod'");//Заменяешь ею ячейку kod в таблице ekran

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

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

    ?>
    </body>
    </html>
    Что выдает файл 3.php?

    И еще можешь попробовать поменять
    PHP:
    $result mysql_query("UPDATE ekran SET kod='$kod' WHERE kod='$kod'");
    на
    PHP:
    $result mysql_query("UPDATE ekran SET kod='$kod' WHERE id='1'");
    Так как у тебя только 1 запись в БД и у нее в таблице ekran поле id равно 1 как я понял. Но должно работать, так как я выше написал.

    PS.
    В файле 2.php можешь также попробовать поменять
    PHP:
    if (isset($_GET['kod'])) {$kod $_GET['kod'];}
    на
    PHP:
    if (isset($_POST['kod'])) {$kod $_POST['kod'];}
    А то у меня чето из головы вылетело какой метод там получаеться, POST или GET :)
     
  8. milanello

    milanello Создатель

    Регистр.:
    28 мар 2009
    Сообщения:
    24
    Симпатии:
    1
    проверил но всеравно неменяет:(
     
  9. kozax89

    kozax89 Постоялец

    Регистр.:
    12 июл 2009
    Сообщения:
    135
    Симпатии:
    4
    А попробовал поменять тамте 2 штуки что в конце моего предыдущего поста написаны? Если не поможет, жди до завтра, может кто нибудь более головастый поможет.

    PS. У меня это работает.

    PS2. ячейка id у тебя первичная и auto-increment?

    Усли нет - попробуй поменять в 2.php
    PHP:
    echo 
    <form action=\"3.php\" method=\"get\" name=\"edit\" target=\"_self\"> 
    <textarea name=\"kod\" id=\"kod\" cols=\"50\" rows=\"10\">"
    .$sum['kod']."</textarea> 
    <input type=\"submit\" name=\"send\" id=\"send\" value=\"Впиши в БД\"> 
    </form>"
    ;//Форма эдиции ячейки
    на
    PHP:
    echo 
    <form action=\"3.php\" method=\"get\" name=\"edit\" target=\"_self\"> 
    <input type=\"hidden\" name=\"id\" id=\"id\" value=\""
    .$sum['id']."\">
    <textarea name=\"kod\" id=\"kod\" cols=\"50\" rows=\"10\">"
    .$sum['kod']."</textarea> 
    <input type=\"submit\" name=\"send\" id=\"send\" value=\"Впиши в БД\"> 
    </form>"
    ;//Форма эдиции ячейки
    а в 3.php добавь после
    PHP:
    if (isset($_GET['kod'])) {$kod $_GET['kod'];}
    следущее:
    PHP:
    if (isset($_GET['id'])) {$id $_GET['id'];}
    и поменяй
    PHP:
    $result mysql_query("UPDATE ekran SET kod='$kod' WHERE kod='$kod'")
    на
    PHP:
    $result mysql_query("UPDATE ekran SET kod='$kod' WHERE id='$id'")

    Можно также изменить ваще эти файлы немного :) Но это последнее что мне в голову приходит

    Файл 1.php
    PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Документ без названия</title>
    </head>

    <body>
    <?

    echo"<a href=\"2.php?id=1\">Я СЦЫЛКО</a>"; //Ссылка на форму 

    ?>
    </body>
    </html>
    Файл 2.php
    PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Документ без названия</title>
    </head>

    <body>
    <?

    if (isset($_GET['id'])) {$id = $_GET['id'];}
    if (isset($_POST['id'])) {$id = $_POST['id'];}//В это так на всякий пожарный :)

    $db = mysql_connect("localhost","бд","пароль");
    mysql_select_db("бд",$db);//Подключаешься к базе

    $result = mysql_query ("SELECT * FROM ekran WHERE id='$id'",$db);
    $sum = mysql_fetch_array($result);//Создаешь таблицу данных из бд

    echo "
    <form action=\"3.php\" method=\"get\" name=\"edit\" target=\"_self\">
    <input type=\"hidden\" name=\"id\" id=\"id\" value=\"".$sum['id']."\">
    <textarea name=\"kod\" id=\"kod\" cols=\"50\" rows=\"10\">".$sum['kod']."</textarea>
    <input type=\"submit\" name=\"send\" id=\"send\" value=\"Впиши в БД\">
    </form>";//Форма эдиции ячейки

    ?>
    </body>
    </html>
    файл 3.php

    PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Документ без названия</title>
    </head>

    <body>
    <?

    if (isset($_GET['kod'])) {$kod = $_GET['kod'];}
    if (isset($_GET['id'])) {$id = $_GET['id'];}

    $db = mysql_connect("localhost","бд","пароль");
    mysql_select_db("бд",$db);//Подключаешься к базе

    if (isset ($kod) && ($id))//Если существует переменная $kod и переменная $id то...
        {
    $result = mysql_query("UPDATE ekran SET id='$id',kod='$kod' WHERE id='$id'");//Заменяешь ею ячейку kod в таблице ekran

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

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

    ?>
    </body>
    </html>
     
    milanello нравится это.
  10. milanello

    milanello Создатель

    Регистр.:
    28 мар 2009
    Сообщения:
    24
    Симпатии:
    1
    дружище ты просто супер,
    последнее заработало,
    теперь буду ковыртся чтобы сделать ето для 8 таких штук
    тоесть 8 кодов сменить надо

    вот ета последняя капля вышла правильной:)
    ты хорошо разбираешся в етих делах

    вопрос, я ето буду на движке ДЛЕ делать,
    как сделать чтобы ссылка 1.пхп была видна только некоторым групам
     
Статус темы:
Закрыта.