Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Администрирование таблички товаров, использовала старый скрипт. 
:(
    Опции темы
Enya
  Дата 20.9.2006, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



Привет, всем! Вот я спрашивала в теме о редактирование таблиц БД, решила пойти своим путём.
Не давно мне попался скрипт администрирования списка вакансий, вот его-то я и заиспользовала.
Но не вышло.. всё равно ошибки в скрипте. Поможите чем можете. smile Вот мой код, который сама переделывала.
Код

<?php
require_once('function.php');


print_tovar_admin_links();

if (isset($_POST['submit_add'])) process_add_data();
if (isset($_POST['delete_tovar'])) delete_tovar();
if (isset($_POST['edit_tovar'])) display_edit_form();
if (isset($_POST['update_tovar'])) update_tovarData();


if (isset($_GET['type'])){
   $type=addslashes($_GET['type']);
     if ($type==1) display_edit_form();
 }
   else if (!isset($_POST['edit_tovar'])){
  
   print_tovar_list();
   }
    function display_edit_form(){
        $sql = 'SELECT * FROM tovar WHERE id_tovara='.$_POST['id_t'];
        $result = mysql_query($sql);
        $row = mysql_fetch_assoc($result);
        
            echo '<form action="edit_tovar.php" method="post">';
            echo '<input type="hidden" name="id_t" value="'.$_POST['id_t'].'">';
            echo '<textarea name="cat_tovara" value="'.$_POST['cat_tovara'].'"></textarea>';
            echo '<textarea name="brend" value="'.$_POST['brend'].'"></textarea>';
            echo '<textarea name="type_tovara" value="'.$_POST['type_tovara'].'"></textarea>';
            echo '<textarea name="description" value="'.$_POST['description'].'"></textarea>';
            echo '<textarea name="file_name" value="'.$_POST['filename'].'"></textarea>';
            echo '<textarea name="cena_tovara" value="'.$_POST['cena_tovara'].'"></textarea>';
            echo '<input type="submit" name="update_tovar" value="Save"></form>';
            
    }
    function update_tovarData(){
        $id_t = addslashes($_POST['id_t']);
        $cat_tovara = addslashes($_POST['cat_tovara']);
        $brend = addslashes($_POST['brend']);
        $type_tovara = addslashes($_POST['type_tovara']);
        $description = addslashes($_POST['description']);
        $file_name = addslashes($_POST['file_name']);
        $cena_tovara = addslashes($_POST['cena_tovara']);
            $sql = 'UPDATE tovar SET id_tovara="'.$id_t.'", cat_tovara="'.$cat_tovara.'", brend="'.$brend.'" type_tovara="'.$type_tovara.'", description="'.$description.'", file_name="'.$file_name.'", cena_tovara="'.$cena_tovara.'"';
            $result = mysql_query($sql) or die($sql);
    }
    function delete_tovar(){
        $sql = 'DELETE FROM tovar WHERE id_tovara='.$_POST['id_tovara'].'';
        $result = mysql_query($sql);
    }
    function print_tovar_list(){
        $sql = 'SELECT * FROM tovar ORDER BY id_tovara DESC';
        $result = mysql_query($sql);
            echo '<TABLE border="1">';
                while ($row = mysql_fetch_assoc($result)){
                    echo '<tr>';
                    echo '<td valign="top">'.$row['id_tovara'].'</td>';
                    echo '<td valign="top">'.$row['cat_tovara'].'</td>';
                    echo '<td valign="top">'.$row['brend'].'</td>';
                    echo '<td valign="top">'.$row['type_tovara'].'</td>';
                    echo '<td valign="top">'.$row['description'].'</td>';
                    echo '<td valign="top">'.$row['file_name'].'</td>';//add image folder path
                    echo '<td valign="top">'.$row['description'].'</td>';
                    echo '<td valign="top">'.$row['cena_tovara'].' ???.</td>';
                    echo '<td valign="top">';
                        echo '<form acton="edit_tovar.php" method="POST"><input type="hidden" name="id_t" value="'.$row['id_tovara'].'"><input type="button" name="edit_tovar" value="Edit"><input type="button" name="delete_tovar" value="Delele"></form>';
                    echo '</td>';
                    echo '</tr>';
                }
            echo '</TABLE>';
    }
    function print_tovar_admin_links(){
        if (isset($_GET['type'])) $type=addslashes($_GET['type']);
        if (!isset($type) or $type!=1) echo '<a href="'.$_SERVER['PHP_SELF'].'?type=1">???????? ?????</a><br>';
        if (isset($type)) echo '<a class="blacklink" href="'.$_SERVER['PHP_SELF'].'">?????? ???????</a><br>';
    }
    function process_add_data(){
        //$id_t = addslashes($_POST['id_t']); 
        $cat_tovara = addslashes($_POST['cat_tovara']);
        $brend = addslashes($_POST['brend']);
        $type_tovara = addslashes($_POST['type_tovara']);
        $description = addslashes($_POST['description']);
        $file_name = addslashes($_POST['file_name']);
        $cena_tovara = addslashes($_POST['cena_tovara']);
            $sql = 'INSERT INTO tovar (cat_tovara, brend, type_tovara, description, file_name, cena_tovara) VALUES("'.$cat_tovara.'", "'.$brend.'", "'.$type_tovara.'","'.$description.'","'.$file_name.'","'.$cena_tovara.'",)';
            $result = mysql_query($sql) or die($sql);
    }
    function add_tovar_form(){
        echo '<form action="edit_tovar.php" method="post">';
        echo '<pre>';
        print_r($_POST);
        echo '<textarea name="cat_tovara"></textarea>';
        echo '<textarea name="brend"></textarea>';
        echo '<textarea name="type_tovara"></textarea>';
        echo '<textarea name="description"></textarea>';
        echo '<textarea name="file_name"</textarea>';
        echo '<textarea name="cena_tovara"</textarea>';
        echo '<input type="submit" name="submit_add" value="????????">';
        echo '</form>';

 }

?>


Вот типа БД.
Код

CREATE TABLE `tovar` (
  `id_tovata` int(11) NOT NULL default '0',
  `cat_tovata` varchar(60) NOT NULL default '',
  `brend` varchar(60) NOT NULL default '',
  `type_tovara` varchar(60) NOT NULL default '',
  `description` varchar(60) NOT NULL default '',
  `file_name` varchar(60) NOT NULL default '',
  `cena_tovara` varchar(60) NOT NULL default '',
  PRIMARY KEY  (`id_tovara`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;




--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
BobiKK
Дата 20.9.2006, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 655
Регистрация: 1.12.2005
Где: Essen, Deutschlan d

Репутация: 4
Всего: 16



Можно по-подробнее про "ошибки в скрипте". На что ругается парсер php-шный
PM MAIL   Вверх
Enya
Дата 20.9.2006, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



BobiKK, Fatal error: Call to undefined function print_tovar_admin_links() in d:\hst\vetrotorg-ru_d70b33b0\http\edit_tovar.php on line 10


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
Gtaman
Дата 20.9.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 10.4.2006

Репутация: нет
Всего: нет



Enya, ну так не найдено объявление этой функции(они у тебя все объявляються после вывода, а надо до)...... и в первой строчке лучше не:

Код

require_once('function.php');


А

Код

include_once('function.php');


Это сообщение отредактировал(а) Gtaman - 20.9.2006, 18:01
PM MAIL   Вверх
Enya
Дата 20.9.2006, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



Gtaman, в 
Код

    
require_once('function.php');
там только соединение с БД, и все функции относящиеся к этому скрипту в этом же файле. вроде так. smile 


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
BobiKK
Дата 20.9.2006, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 655
Регистрация: 1.12.2005
Где: Essen, Deutschlan d

Репутация: 4
Всего: 16



Ну и где в этом файле определение ф-ии print_tovar_admin_links();?
PM MAIL   Вверх
-=Ustas=-
Дата 20.9.2006, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Enya, посмотри, где находится вызываемая функция. и есть ли она вообще.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Shark
Дата 20.9.2006, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 18.6.2006
Где: Москва

Репутация: 4
Всего: 4



BobiKK, глняь 5-ю и 73 строку... мне кажется 5-я не нужна в этом файле


--------------------
Смерть - это только начало... 
Агентство недвижимости Premial
PM MAIL WWW ICQ   Вверх
Enya
Дата 20.9.2006, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



Так я вашу мысль поняла. *Надеюсь*. Исправлю отпишуть. ок?!


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
Enya
Дата 21.9.2006, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



И так господа, я внесла все функции администрирования в фаил admin_function.php
И тперь фаил edit_tovar.php вот такой
Код

<?php
require_once('function.php');
require_once('admin_function.php'); 
session_start();

do_html_header('Òàáëèöà òîâàðîâ');
if (check_admin_user())
{

print_tovar_admin_links();

if (isset($_POST['submit_add'])) process_add_data();
if (isset($_POST['delete_tovar'])) delete_tovar();
if (isset($_POST['edit_tovar'])) display_edit_form();
if (isset($_POST['update_tovar'])) update_tovarData();


if (isset($_GET['type'])){
   $type=addslashes($_GET['type']);
     if ($type==1) display_edit_form();
 }
   else if (!isset($_POST['edit_tovar'])){
  
   print_tovar_list();
   }
}
else 
  echo 'Âû íå àâòîðèçîâàííû.'; 

do_html_footer();
?>

Есть несколько ошибок. Я сейчас буду с ними разбираться, если не пойму или не получиться то, буду спрашивать вас!


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
Enya
Дата 21.9.2006, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



Кое-какие ошибки разгребла. Вот осталась вот эта ошибка
Цитата

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in d:\hst\vetrotorg-ru_d70b33b0\http\admin_function.php on line 25
Она появляет когда хочу добавить товар в таблицу.
Вот тот кусочек кода:
Код

function display_edit_form(){
        $sql = 'SELECT * FROM tovar WHERE id_tovara='.$_POST['id_t'];
        $result = mysql_query($sql);
        $row = mysql_fetch_assoc($result);//ВОТ ЭТА СТРОЧКА, И ЧТО ЕМУ НЕ НРАВИТЬСЯ
        
            echo '<form action="edit_tovar.php" method="post">';
            echo '<input type="hidden" name="id_t" value="'.$_POST['id_t'].'">';
            echo '<textarea name="cat_tovara" value="'.$_POST['cat_tovara'].'"></textarea>';
            echo '<textarea name="brend" value="'.$_POST['brend'].'"></textarea>';
            echo '<textarea name="type_tovara" value="'.$_POST['type_tovara'].'"></textarea>';
            echo '<textarea name="description" value="'.$_POST['description'].'"></textarea>';
            echo '<textarea name="file_name" value="'.$_POST['filename'].'"></textarea>';
            echo '<textarea name="cena_tovara" value="'.$_POST['cena_tovara'].'"></textarea>';
            echo '<input type="submit" name="update_tovar" value="Save"></form>';
            
    }
И когда кликаю на клавиши Edit, Delete - то ничего не происходит. smile Как буд-то функция не запускается.
Когда, имя клавиши Удалить delete_tovar
определена вот здесь
Код

                        echo '<form acton="edit_tovar.php" method="POST"><input type="hidden" name="id_t" value="'.$row['id_tovara'].'"><input type="button" name="edit_tovar" value="Edit"><input type="button" name="delete_tovar" value="Delele"></form>';
И вот здесь
Код

if (isset($_POST['submit_add'])) process_add_data();
if (isset($_POST['delete_tovar'])) delete_tovar();
if (isset($_POST['edit_tovar'])) display_edit_form();
if (isset($_POST['update_tovar'])) update_tovarData();
Но не пашет!
Вот сама функция удаления товара из таблицы:
Код

function delete_tovar(){
        $sql = 'DELETE FROM tovar WHERE id_tovara='.$_POST['id_tovara'].'';
        $result = mysql_query($sql);
    }



--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 21.9.2006, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Попробуй так поставить и посмотреть что будет:
Код

$sql = 'SELECT * FROM tovar WHERE id_tovara='.$_POST['id_t'];
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($result);//ВОТ ЭТА СТРОЧКА, И ЧТО ЕМУ НЕ НРАВИТЬСЯ



--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
BobiKK
Дата 21.9.2006, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 655
Регистрация: 1.12.2005
Где: Essen, Deutschlan d

Репутация: 4
Всего: 16



Может дело в первой строке?
Код

$sql = "SELECT * FROM `tovar` WHERE `id_tovara`=".$_POST['id_t'];

PM MAIL   Вверх
Enya
Дата 21.9.2006, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



-=Ustas=-, функция die(mysql_error() выдала
Цитата

You have an error in your SQL syntax near '' at line 1
Тогда получается что синтаксическая ошибка вот здесь?
Код

$sql = 'SELECT * FROM tovar WHERE id_tovara='.$_POST['id_t'];



--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
ewolf
Дата 21.9.2006, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: 8
Всего: 18



Да, у тебя ошибка в SQL.

Удаление не пашет, так как у тебя в форме написано

<input type="hidden" name="id_t" value="'.$row['id_tovara'].'">

а в SQL

Код

 $sql = 'DELETE FROM tovar WHERE id_tovara='.$_POST['id_tovara'].'';


Еще рекомендую изменить код вот так:

Код

$sql = 'SELECT * FROM tovar WHERE id_tovara='.$_POST['id_t'];
$result = mysql_query($sql) or die($sql . '<br>' . mysql_error());
$row = mysql_fetch_assoc($result);//ВОТ ЭТА СТРОЧКА, И ЧТО ЕМУ НЕ НРАВИТЬСЯ


Ты увидишь еще и свой sql запрос, по нему будет понятно, где ошибка. Скорее всего, не установленна переменная $_POST['id_t']
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1535 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.