Проверка към базата данни

eddy

Registered
PHP:
$sql='SELECT COUNT(*) as cnt FROM users WHERE login="'.addslashes($login).'" OR email="'.addslashes($email).'"';

Ето в тази проверка трябва да проверява дали името и емайла не съществуват вече.Ако едно от 2 те съществува да изкара грешка.Обаче с този код проверява само дали името съществува $login . До емайла изобщо не стига.Пробвах на OR да го сменя със AND обаче по този начин абсулютно нищо не проверява, ами директно си записва във базата с данни.
 
С OR ако едното условие е вярно ще се запишат. С AND трябва и двете да са вярни.
 
Добре ама като ползвам AND ако примерно потребителсктото име няма такова, но майла вече съществува.В базата данни отново се записва инфомацията въведена от формата.Дори и обратната ситулация пак се записва само ако ползвам OR тогава само името проверява.Ако примерно името го няма в базата данни, но майла е там.Той вади стойност, че такав майл не съществува и кода си продължава и записва инфомацията.
 
Изгледай до край урока на @gatakka и ще сработи кода ;)
Гледал си го до там докъдето си видял кода и си спрял..
 
Еми до регистрация 2-ра част .. съм го гледал.Той забелязвали проблема по-напред.
 
Той прави проверка от типа на:
PHP:
$rs = mysql_query($sql);
$row=mysql_fetch_assoc($rs);
if(count($row['cnt'])>0){
echo 'Заето потребителско име или е-майл.';
}
 
Да, ето

PHP:
if(!count($error_array)>0)
    {
    dbcon();
$sql='SELECT COUNT(*) as cnt FROM users WHERE login="'.addslashes($login).'" OR email="'.addslashes($email).'"';
$res=mysql_query($sql);
$row=mysql_fetch_assoc($res);
if($row['cnt']==0)
    {
    mysql_query('INSERT INTO users (login,pass,real_name,email,date_registerd) VALUES ("'.addslashes($login).'","' .md5($pas).'","'.addslashes($name).'", " '.addslashes($email).'",'.time().' )');
   if(mysql_error()){
      $error_array['sql'] = 'Грешка, моля опитайте отново!';
   }
   else {
       header('Location: index.php');
       exit;
   }
}
else {
    $error_array['login']='Името или емайла вече са заети';
    $error_array['mail']='Името или емайла вече са заети';
     }

}
 
Ev0luti0N каза:
Той прави проверка от типа на:
PHP:
$rs = mysql_query($sql);
$row=mysql_fetch_assoc($rs);
if(count($row['cnt'])>0){
echo 'Заето потребителско име или е-майл.';
}
Така, но с mysql_num_rows
 
Искам просто ако майла или потребителя съществува да излиза грешка .. и не се получава.
 

Back
Горе