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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: как переписать значение поля в мускуле
 
 автор: LimP   (09.10.2004 в 21:25)   письмо автору
 
 

вот у меня есть например поле name и в нем значение LimP я его при помощи файла извлекаю,помещаю в форму,так что пользователь может его менять...вот,он его поменял,каким должен быть запрос,чтобы переписать поле name со старого значения на ново(то,которое ввел пользователь)...
----------------------------------------------------
заранее благодарен...

   
 
 автор: LimP   (09.10.2004 в 21:40)   письмо автору
 
   для: LimP   (09.10.2004 в 21:25)
 

поясню,что старое значение сохранять не нужно,его нужно переписать,тоесть удалить а на его место написать новое,которое ввел пользователь,но я это сам,помогите тока с запросом,а то как-то нехочется делать в два,запутаться просто,у меня там много...

   
 
 автор: cheops   (09.10.2004 в 22:04)   письмо автору
 
   для: LimP   (09.10.2004 в 21:40)
 

Не очень понятно, почему имя извлекается из файла, а после изменения помещается в базу MySQL. Обычно для таких операций используется либо оператор UPDATE или REPLACE, например:
UPDATE base SET name='$name' WHERE name='LimP'

Эта запись позволяет обновить таблицу base, для которой имя name = 'LimP'. Новое значение равно $name.

   
 
 автор: LimP   (09.10.2004 в 22:10)   письмо автору
 
   для: cheops   (09.10.2004 в 22:04)
 

нет,вы просто неправильно поняли,как можно извлечь из файла и поместить в базу?...нет,извлекаю из базы,вывожу в файле в форме,пользователь редактирует и опять на это же место в базу в ту же ячейку и переписываем старое значение...попробую,как вы сказали в предыдущем посте.... там параметр base-это как я понял-название базы???

   
 
 автор: Адоп Акробат   (09.10.2004 в 22:17)   письмо автору
 
   для: LimP   (09.10.2004 в 22:10)
 

Мне кажется точто ты хлчешь с одним запросом не справица надобыдет делать 2 первое которое извлекает из база а второе которое меняет значение

   
 
 автор: LimP   (09.10.2004 в 22:32)   письмо автору
 
   для: Адоп Акробат   (09.10.2004 в 22:17)
 

да я вот именно это и хочу,тока нехочу делать двумя запросами!!!мона сделать и одним,вопрос хеопсу ,вот у меня код,чета не работает...не вносится в базу,я хоть правильно написал...точнее вносится,но не переписывает а записывает как новое...а нужно переписать старое значение...вот код
<?php
include "../config.php";
$id $_POST['id'];
$question $_POST['question'];
$arr1 $_POST['golos'];
//----------------------------------
$oka1 "update poll set name='$question' where id_poll='$id';";
$oka mysql_query($oka1);
$count1 count($arr);
//----------------------------------
$a=-1;
while (
$a != $count1)
{
 
$a=$a+1;

  if (
$arr1[$a] != "")
  {
    
$ara $arr1[$a];
    
$query_golos "update golos set name='$ara' where id_poll='$id';";
    
$ok mysql_query($query_golos);
  }
}
//echo "<meta http-equiv='refresh' content='0;url=index.php'>";
?>

   
 
 автор: LimP   (09.10.2004 в 23:09)   письмо автору
 
   для: LimP   (09.10.2004 в 22:32)
 

:)))

   
 
 автор: cheops   (09.10.2004 в 23:20)   письмо автору
 
   для: LimP   (09.10.2004 в 22:32)
 

Здесь бы был очень кстатит дамп базы данных.

PS Такая ситуация возможна если только поле с таким id_poll не существует... Кстати id_poll это уникальное поле?

   
 
 автор: LimP   (10.10.2004 в 13:19)   письмо автору
 
   для: cheops   (09.10.2004 в 23:20)
 

вот база

create database poll;
CREATE TABLE poll (
  id_poll int(10) NOT NULL auto_increment,
  name text,
  putdate date default NULL,
  PRIMARY KEY  (id_poll)
) TYPE=MyISAM;

CREATE TABLE golos (
  id_golos int(10) NOT NULL auto_increment,
  name text,
  count int(10) default NULL,
  id_poll int(10) default null,
  PRIMARY KEY  (id_golos)
) TYPE=MyISAM;

CREATE TABLE ip (
  id_ip int(10) NOT NULL auto_increment,
  ip text,
  try int(10) default null,
  PRIMARY KEY  (id_ip)
) TYPE=MyISAM;

в таблице poll id_poll -это первичный ключ а в таблице golos это для учета,к какому блоку относится данный вариант огтвета на голосование...

   
 
 автор: cheops   (10.10.2004 в 14:03)   письмо автору
 
   для: LimP   (10.10.2004 в 13:19)
 

Хм... ну простейший скрипт с этой базой работает как надо:
<?php
  
include "../config.php";
  
$question "Новое имя";
  
$id 1;
  
$oka1 "update poll set name='$question' where id_poll=$id"
  if(!
mysql_query($oka1))
  {
    echo 
mysql_error();
  } 
?>


PS Может лучше перебрать $arr1 при помощи foreach?

   
 
 автор: LimP   (10.10.2004 в 20:54)   письмо автору
 
   для: cheops   (10.10.2004 в 14:03)
 

подскажите как,а то я с foreach плохо дружу :(

   
 
 автор: cheops   (10.10.2004 в 21:04)   письмо автору
 
   для: LimP   (10.10.2004 в 20:54)
 

<?php
foreach($arr1 as $ara)
{
  if(
$ara != "")
  {
    
$query_golos "update golos set name='$ara' where id_poll='$id'"
    
$ok mysql_query($query_golos); 
  }
}
?>

   
 
 автор: cheops   (10.10.2004 в 21:06)   письмо автору
 
   для: LimP   (10.10.2004 в 20:54)
 

Кстати, получается, что в цикле изменяется только одна запись с id_poll=$id - чего-то не то...

   
 
 автор: LimP   (11.10.2004 в 13:51)   письмо автору
 
   для: cheops   (10.10.2004 в 21:06)
 

мне нужно чтоб в цикле...пока не кончатся объекты массива обновлять(переписывать) их значения....

   
 
 автор: LimP   (11.10.2004 в 15:35)   письмо автору
 
   для: LimP   (11.10.2004 в 13:51)
 

вот,гляньте,я в аттаче прикрепил базу мою,файл-обработчик(его собственно мне и нужно сделать)и файл-введение данных...короче,разберетесь...так вот,мне нужно исправить файл-обработчик editpoll.php...чтобы он переписал значения всего,что там есть...и вопроса и остальных вариантов ответа,вопрос пишется в таблицу poll в колонку name а варианты ответа на голосование пишутся в колонку с таким же названием,тока в таблицу golos...и переписывают свое старое значение...

   
 
 автор: LimP   (11.10.2004 в 19:02)   письмо автору
 
   для: LimP   (11.10.2004 в 15:35)
 

:)))

   
 
 автор: LimP   (11.10.2004 в 21:27)   письмо автору
 
   для: LimP   (11.10.2004 в 19:02)
 

:-(

   
 
 автор: cheops   (11.10.2004 в 23:45)   письмо автору
 
   для: LimP   (11.10.2004 в 15:35)
 

Да закавыка заключалась в трудности передачи первичных ключей из таблицы golos - в этом случае следует указывать индексы массива в HTML-тэге явно.

   
 
 автор: LimP   (12.10.2004 в 21:48)   письмо автору
 
   для: cheops   (11.10.2004 в 23:45)
 

пасиба ,у вас там много ошибок было,я поисправлял(например,оно не переписывало совсем вопрос блока голосования)короче,я все исправил,все хоккей....тока вот у мя новый небольшой вопрос...как мне проверить,есть ли элемент в таблице??? вот у меня есть ip-аддрес,который мне нужно проверить,если он записан уже в таблице ip в поле ip или нет...как это сделать,а то я уже все перепробовал....и in_array и все что тока можно,неполучается.....

   
 
 автор: cheops   (12.10.2004 в 21:59)   письмо автору
 
   для: LimP   (12.10.2004 в 21:48)
 

Ну можно просто осуществить запрос поместив в условие WHERE ограничение на записи в которых содержится данных IP-адрес, а потом проверить число возвращённых строк:
<?php
  $query 
"SELECT * FROM ip WHERE ip = '$ip'";
  
$tot mysql_query($query);
  if(!
$tot)
  {
     if(
mysql_num_rows($tot)>0)
     {
        echo 
"Такой IP-адерс уже существует";
        exit();
     }
  }
?>

   
Rambler's Top100
вверх

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