Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подскажите как сделать update таблицы с ценами, 
:(
    Опции темы
webzic
Дата 1.1.2008, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет, может кто подскажет я новичок в этом деле столкнулся с такой проблемой. Есть БД которая состоит из трёх ячеек ID, NAME, PRISE
данные в таблицу добавляются через форму.
Не получается написать запрос Update который будет обнавлять цены в прайсе при нажатии конопки Изменить
Код


<?
// Подключаемся к БД.
$DB="prise";
if(!mysql_connect(localhost, root))
{
echo "Немогу подключится к бд";
exit;
}
// Выбираем базу
mysql_select_db($DB);
// Выводим количество товара в прайсе
$r=mysql_query("select *from produkts");
echo "В прайс листе ".mysql_num_rows($r)." позиций";
?>
<br><br>
<strong><a href=?=prise&action=dobavit>Добавить товар в базу</a></strong><br>
<?

if ($action == "edit") {
//Оператор SQL
$sql = "INSERT INTO produkts " .
    "(NAME, PRISE) VALUES ('$name', '$prise')";
    
//Выполнение оператора SQL и сохранение результатов в множестве записей
$result=mysql_query($sql);
}
elseif ($action == "dobavit") {
echo "<form action=$PHP_SELF?=prise&action=edit method=post>
Название товара: <input type=text name=name size=50>   Цена: <input type=text name=prise size=11>.руб  <input type=submit name=Submit value=Добавить товар>
</form>";
}
elseif ($action == "new") {
// Если мы уже нажимали кнопку изменения записи
  // Обновляем выбранную запись
  $sql="update produkts set prise='$prise'";
  mysql_query($sql);
  
  // Заносим в переменную <I>$result</I> всю базу оставленных сообщений
$sql="select * from  produkts";
$re=mysql_query($sql);
}

//ВЫВОД ПРАЙСА
$query="select * from produkts";
$res=mysql_query($query);

$number=mysql_numrows($res);

$i=0;
if ($number > 0)
{
while ($i < $number)
{

$name=mysql_result($res,$i,"name");
$prise=mysql_result($res,$i,"prise");
/* Вывод Ф.И.О. */
print "<b>$name</b> ";
print " <input type=text name=prise value=$prise>руб.<br>";
$i++;
print "<hr>";
}
}


echo "
<form method=post action='$PHP_SELF?=prise&action=new'>
<input type=submit name='submit_update' value='Изменить'></form>";
mysql_close();
?>

PM MAIL   Вверх
skyboy
Дата 1.1.2008, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

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



Цитата(webzic @  1.1.2008,  18:58 Найти цитируемый пост)
Не получается написать запрос Update

"не получается" - это слишком абстрактно.
в чем вопрос?
"каким редактором пользоваться для написания кода?"
"почему РНР файл скачивается, а не выполняется?"
"почему не подключается к БД?"
"почему запрос выдает ошибку <...>?"
    P.S. Измените тип подсветки в своем сообщении.
PM MAIL   Вверх
vi_k
Дата 2.1.2008, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

$sql="update produkts set prise='$prise'";


Этот запрос меняет данные во всей таблице, а не в выбранной записи. Рекомендую к изучению документацию по MySQL на русском языке: http://www.mysql.ru/docs/man/ (документация не нова, но, к сожалению, более новая только на английском). Там же найдёте информацию по синтаксису запроса UPDATE: http://www.mysql.ru/docs/man/UPDATE.html - обратите внимание на ключевое слово WHERE (Да простят меня многие - других ресурсов не предлагаю только потому что их не знаю).

К тому же:

Цитата

$r=mysql_query("select *from produkts");
echo "В прайс листе ".mysql_num_rows($r)." позиций";


Вы выбираете всю таблицу (то бишь полностью скачиваете её) только для того чтобы узнать кол-во строк в ней. Это делается иначе: ищите там же "Подсчет строк" или воспользуйтесь поиском - "count(*)".


Ещё: я не разбирался в коде, но довольно таки странно выглядит, что при action="edit" вы добавляете новую запись, а при action="new" редактируете существующую.

Ещё (2): просто рекомендация, не имеющая никакого отношения к делу, оффтоп так сказать, и надеюсь вас этим никак не оскорбить - воспользуйтесь русско-английским переводчиком - так будет проще понимать ваш код.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




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


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

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