Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Ошибка при исправлении данных в базе данных

Сообщения:  [1-10]   [11-11] 

 
 автор: fiper   (28.09.2007 в 13:32)   письмо автору
 
   для: Dizels   (28.09.2007 в 13:15)
 

У вас в запросе запятая после name='$name',


$query = "UPDATE country SET   name='$name',  WHERE id_country='$country'; 

   
 
 автор: Dizels   (28.09.2007 в 13:15)   письмо автору
 
   для: sim5   (28.09.2007 в 12:44)
 

исправил, спасибо

   
 
 автор: sim5   (28.09.2007 в 12:44)   письмо автору
 
   для: Dizels   (28.09.2007 в 12:12)
 


$query = "UPDATE country SET name=$name WHERE id_country=$country";

Кавычки закрывать надо.

   
 
 автор: Dizels   (28.09.2007 в 12:12)   письмо автору
 
   для: sim5   (28.09.2007 в 10:47)
 


А вот сама логика вообще не понятна. Если вы хотите предоставить пользователю выбор, то у вас должен быть список

Нет - я хочу предоставить возможность модератору(эти скрипты будут использоваться ограниченным кругом людей) изменять название страны, к примеру, вот вы неправильно ввели Булоруссия - нажимаете исправить и вам должен выводится для начала ваш неправильный текст, т.е. Булоруссия, потом, вы его исправляете на Белоруссия и нажимаете исправить и в БД эта запись должна исправиться, надеюсь объясни понятно:)

Вот файл editcountry.php:

<?php

  
// Устанавливаем соединение с базой данных
  
require_once("../config.php");


  
// Проверяем, заполнены ли поля формы
if(empty($name)) { echo "Введите название страны";
         exit;
         }
if(empty(
$country)) { echo "Не передана переменная страны";
         exit;
         }


  
// Заменяем одинарные кавычки обратными
  
$name str_replace("'","`",$_POST['name']);
 
  
// Формируем и осуществляем SQL-запрос на исправление страны

  
$query "UPDATE country SET 
                            name='
$name',
                            WHERE id_country='
$country';
  if(mysql_query(
$query))
    {
      // В случае успеха, осуществляем автоматический переход на
      // страницу стран
        echo "
<HTML><HEAD>
            <
META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
            </
HEAD></HTML>";

    }
    else puterror("
Ошибка при обращении к блоку стран");

?>



переменные ТОЧНО передаются, а вот ошибка выпадает следующая:

Parse error: parse error, unexpected '>' in z:\home\localhost\www\peoplecrimea\admin\country\editcountry.php on line 28

Я так понимаю, что SQL-запрос составлен неправильно, подскажите плз, как надо сделать.

   
 
 автор: sim5   (28.09.2007 в 10:47)   письмо автору
 
   для: Dizels   (28.09.2007 в 10:11)
 

А я вам про что-то другое да? Для начала прочтите: mysql_query(), mysql_fetch_array().
А вот сама логика вообще не понятна. Если вы хотите предоставить пользователю выбор, то у вас должен быть список, например:

<select name="id_country">
<option value="1">Россия</option>
<option value="2">Украина</option>
<option value="3">Булоруссия</option>
</select>

Тогда понятен выбор вами всех записей таблицы. А вы что делаете? Выбрали все (а это массив!), потом ни с того ни с чего, приравниваете это перменным, которые кстати вообще нигде не используются, далее следующий ляпсус - вставляете в форму, а вы думаете, что вы туда вставляете?

Проверили, нет запроса пользователя, значит выводите ему список (иначе выбор всего, это глупо), т.е. формируете форму. Если пришел запрос, значит либо переход к другому скрипту, либо в этом, где вы производите необходимые изменения в таблице, либо другое, то что вы подразумеваете под изменением.

   
 
 автор: Dizels   (28.09.2007 в 10:11)   письмо автору
 
   для: sim5   (27.09.2007 в 18:34)
 

Эта страница - форма, т.е. туда передается, чтобы потом в <input type="text"> установить значение value развное названию страны, а вот уже как там его подправят, тогда будет все передаваться в файл editcountry.php сейчас же я говорю про файл editcountryform.php

   
 
 автор: sim5   (27.09.2007 в 18:34)   письмо автору
 
   для: Dizels   (27.09.2007 в 18:04)
 

И будет ошибка, потому как надо:

<?
//Сформировали запрос
$query="select name from country where id_country=".$_GET['id_country'];
//делаем запрос
mysql_query($query);
//а у вас дважды - не понятно?

Да и вообще, не важны детали, у вас не верна суть!

>id_country - передается чтобы было ясно название какой страны исправлять.

Если исправлять, то UPDATE, или вставить новое - INSERT. Вы же просто выберате, и что? Для чего вы передаете id_country на страницу, лишь для того чтобы удостовериться что она пришла? У вас логика странная в скрипте, не говоря уж об ошибках.

   
 
 автор: Dizels   (27.09.2007 в 18:04)   письмо автору
 
   для: sim5   (27.09.2007 в 17:44)
 

id_country - передается чтобы было ясно название какой страны исправлять.

Если вставляю

$query= mysql_query("select name from country where id_country=$_GET['id_country']")

выдает ошибку:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in z:\home\localhost\www\peoplecrimea\admin\country\editcountryform.php on line 15

   
 
 автор: sim5   (27.09.2007 в 17:44)   письмо автору
 
   для: Dizels   (27.09.2007 в 17:38)
 

А зачем передается в скрипт $_GET['id_country']? И зачем вы выбираете все записи в базе? Может вам нужно только это:


$query= mysql_query("select name from country where id_country=$_GET['id_country']")

   
 
 автор: fiper   (27.09.2007 в 17:43)   письмо автору
 
   для: Dizels   (27.09.2007 в 17:38)
 

А зачем точка с запятой?


select * from country;

   

Сообщения:  [1-10]   [11-11] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования