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

Форум MySQL

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

 

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

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

тема: проверка данных, существует ли запись

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

 
 автор: provodnik   (29.10.2007 в 22:52)   письмо автору
 
   для: ols   (29.10.2007 в 21:56)
 

Думаю это будет работать:

<?
$pr 
mysql_query("SELECT * FROM reg WHERE name = '".$_POST['name']."'"); 
if (
$pr

    if(
mysql_num_rows($pr))
    {
        echo 
"Данное имя уже есть!"
    }
    else
    {                
        
$zapros mysql_query("INSERT reg SET name = '".$_POST['name']."', pass = '".$_POST['pass']."', email = '".$_POST['pass']."'"); 
        if (
$zapros) echo "Вы зарегистрированы";  
        else echo 
"При регистрации возникла ашЫпка!";
    }

else echo 
"При запросе возникла ашЫпка!";
?>

   
 
 автор: bronenos   (29.10.2007 в 22:31)   письмо автору
 
   для: ols   (29.10.2007 в 21:56)
 

if (pr1) 

    if(mysql_num_rows($pr)) echo "Данное имя уже есть!"; 
}

в условии забыли переменную обозначить, а функции передали строку запроса, а не ответ сервера

   
 
 автор: ols   (29.10.2007 в 21:56)   письмо автору
 
   для: oradev   (29.10.2007 в 09:57)
 

Хм, странно.
Вот весь кусок (это пример для разборки)

$name = "gbh";
$pr = "SELECT * FROM reg WHERE name = '".$_POST['name']."'";
$_POST['name']."'";

$pr1 = mysql_query($pr);
if (pr1)
{
    if(mysql_num_rows($pr)) echo "Данное имя уже есть!";
}
else echo "Ошибка регистриции!";
  $zapros = "INSERT INTO reg VALUES (0, '$name','123456','vfdvbdf@rgrgh.hgh')";

if (mysql_query($zapros))
{
    echo "вы зарегистрированы";
}
else echo "Ошибка!";

Вот что выводит:

Notice: Undefined index: name in s:\home\cms\www\reg\reg.php on line 4
[Денвер: показать возможную причину ошибки]
Notice: Undefined index: name in s:\home\cms\www\reg\reg.php on line 5

Notice: Use of undefined constant pr1 - assumed 'pr1' in s:\home\cms\www\reg\reg.php on line 8

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in s:\home\cms\www\reg\reg.php on line 10
вы зарегистрированы

Вот сама структура таблицы
CREATE TABLE `reg` (
`id_user` int(11) NOT NULL auto_increment,
`name` tinytext NOT NULL,
`pass` tinytext NOT NULL,
`email` tinytext NOT NULL,
PRIMARY KEY (`id_user`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=30 ;

   
 
 автор: oradev   (29.10.2007 в 09:57)   письмо автору
 
   для: ols   (28.10.2007 в 22:30)
 

Если речь идет только о проверке. Наверное все же лучше в запросе использовать агрегатную COUNT, а не выбирать все записи.

   
 
 автор: provodnik   (28.10.2007 в 22:48)   письмо автору
 
   для: ols   (28.10.2007 в 22:30)
 

"ВЫБРАТЬ всё из таблицы reg ГДЕ имя"
- Чего имя, кому имя, чьё имя - неизвестно...
Осмелюсь предположить, что у Вас иемется переменная name, идущая из формы регистрации. Если я угадал, то попробуйте это:

<?
$pr 
"SELECT * FROM reg WHERE name = '".$_POST['name']."'";
if(
mysql_num_rows($pr)) echo "Данное имя уже есть!";
?>

   
 
 автор: ols   (28.10.2007 в 22:30)   письмо автору
 
 

Как проверить существует ли такая запись в БД в соответствующем поле или нет?
Я сделал вот так, но видимо не правильно


$pr = "SELECT * FROM reg WHERE name";

$pr1 = mysql_query($pr);
if (pr1)
{
    if(mysql_num_rows($pr1)>0)
    {
        echo "Данное имя уже есть!";
    }
}
else echo "Ошибка регистриции!";

   

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

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

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