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

Форум MySQL

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

 

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

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

тема: Ограничения на ввод пользователем информации в базу.
 
 автор: Vadim777   (13.09.2005 в 15:30)   письмо автору
 
 

У меня база, где существуют рубрики, под каждую созданна таблица, как ограничить ввод пользователем инфы, чтоб на один номер телефона приходилось не больше одной записи в одну таблицу/рубрику. под номер телефона имеется соответствующее поле в каждой таблице.

   
 
 автор: cheops   (13.09.2005 в 18:44)   письмо автору
 
   для: Vadim777   (13.09.2005 в 15:30)
 

Для этого пред внесением в таблицу новой записи, следует проверить нет ли в таблице записи с таким номером телефона, если есть, то новую запись добавлять не следует, если нет - то добавляем новую запись.

   
 
 автор: Ziq   (14.09.2005 в 06:47)   письмо автору
 
   для: cheops   (13.09.2005 в 18:44)
 

А можно еще использовать индекс UNIUQE. Тогда сама СУБД будет отслеживать это дело.

   
 
 автор: Vadim777   (14.09.2005 в 15:20)   письмо автору
 
   для: Ziq   (14.09.2005 в 06:47)
 

Простите за невежество, как это сделать, т.е. нужно придать полю "телефон" - свойство уник, как?

   
 
 автор: cheops   (14.09.2005 в 21:28)   письмо автору
 
   для: Vadim777   (14.09.2005 в 15:20)
 

Для этого необходимо проиндексировать поле "телефон", т.е. создать на нём уникальный индекс, например, при помощи оператора CREATE INDEX, синтаксис которого можно посмотреть в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=419

   
 
 автор: Vadim777   (15.09.2005 в 10:43)   письмо автору
 
   для: cheops   (14.09.2005 в 21:28)
 

Я сделал так: залез в phpmyadmin и в поле телефон клацнул опцию "уникальное". Это правильно и достаточно?

   
 
 автор: cheops   (15.09.2005 в 13:55)   письмо автору
 
   для: Vadim777   (15.09.2005 в 10:43)
 

Да.

   
 
 автор: cheops   (14.09.2005 в 21:28)   письмо автору
 
   для: Vadim777   (14.09.2005 в 15:20)
 

-

   
 
 автор: Vadim777   (15.09.2005 в 10:54)   письмо автору
 
   для: cheops   (14.09.2005 в 21:28)
 

Да работает, т.е. новые данные не вносятся на тот же телефон, но подскажите как сформулировать комманду: " Извините, но у вас уже имеется информация в базе данных" if ($tel = $_POST['$tel'] )
{
echo " Извините, но у вас уже имеется информация в базе данных";
exit;
}
???

   
 
 автор: cheops   (15.09.2005 в 13:58)   письмо автору
 
   для: Vadim777   (15.09.2005 в 10:54)
 

Нужно проверять перед добавлением имеется такой телефон в базе или нет.
SELECT COUNT(*) FROM tbl_tel WHERE tel = $_POST[tel]

   
 
 автор: Vadim777   (16.09.2005 в 11:08)   письмо автору
 
   для: cheops   (15.09.2005 в 13:58)
 

Для особо одаренных как "select..... соединить с "insert....
или это
$query="SELECT COUNT(*) FROM table_name WHERE tel = $_POST['tel']";
if (tel = $_POST['tel'])
{
echo 'Извините: но у вас уже имеется информация в базе. ';
exit;
}
$query="insert...
не работает

   
 
 автор: napTu3aH   (16.09.2005 в 11:44)   письмо автору
 
   для: Vadim777   (16.09.2005 в 11:08)
 

что конкретно неработает?
запрос вы составили

$query="SELECT COUNT(*) FROM table_name WHERE tel = $_POST['tel']";

а направить его в MYSQL?

$result=mysql_query($query);

а в строке

if (tel = $_POST['tel'])

tel это константа или переменная?

   
 
 автор: Vadim777   (16.09.2005 в 13:09)   письмо автору
 
   для: napTu3aH   (16.09.2005 в 11:44)
 

благодарю всех! - работает так:
$query="SELECT COUNT(*) FROM  table_name WHERE tel = '".$_POST['tel']."'";
      $result = mysql_query($query);
  if ($result)

  {
     echo 'извините: Но у вас уже имеется запись в базе.  ';
     exit;
  }

Правильна она или нет?
Но работает!!!
Спасибо!

   
 
 автор: cheops   (16.09.2005 в 13:20)   письмо автору
 
   для: Vadim777   (16.09.2005 в 13:09)
 

Нет... это код будет работать не верно - он всегда будет говорить 'извините: Но у вас уже имеется запись в базе. ', даже если телефона нет. Следует писать следующим образом
<?php
$query
="SELECT COUNT(*) FROM  table_name WHERE tel = '".$_POST['tel']."'"
  
$result mysql_query($query); 
  
$total mysql_result($result,0);
  if (
$total
  { 
     echo 
'извините: Но у вас уже имеется запись в базе.  '
     exit; 
  }
?>

   
 
 автор: Vadim777   (16.09.2005 в 13:42)   письмо автору
 
   для: cheops   (16.09.2005 в 13:20)
 

спасибо! так и есть: без этого не работает!

   
Rambler's Top100
вверх

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