Проблем с проверка за запис

Skorostrelko

Registered
Здравейте,
Имам следният код:
PHP:
<?php
include_once "config.php";
$neighborhood = $_POST['neighborhood'];
$street = $_POST['street'];
$number = $_POST['number'];

//var_dump($_POST);

if (empty($neighborhood) || empty($street) || empty($number))
{
	echo "Задължително трябва да попълните всички полета !";
} else {

	if (!preg_match('/^[а-я0-9]+$/u', $neighborhood))  
		echo "Позволено е писането само на кирилица !";
	else {
		if (isset($_POST['neighborhood']) && isset($_POST['street']) && isset($_POST['number']))
		{
			$q = mysql_fetch_row(mysql_query("SELECT COUNT(*) FROM search_table WHERE  neighborhood = '$neighborhood' AND street = '$street' AND number = $number"));
			if($q[0] > 0) echo "Този адрес вече съществува в базата данни !"; 
		} else {
			$chars = "SET CHARACTER SET utf8";
			mysql_query($chars);
			$query = mysql_query("INSERT INTO `search_table` (`neighborhood`, `street`, `number`) VALUES ('$neighborhood', '$street', $number)") 
				or die(mysql_error());
			if ($query) 
				echo "Успешно добавихте адреса !";
			else
				echo "Възникна някаква грешка !";
		}
	}
}
?>

Къде бъркам с проверката за съществуващ запис? И преди нея на проверката за писане само на кирилица, как да я направя, за да е в сила и за другите 2 полета освен за "street" .Благодаря предварително!
 
пробвах и така...но пак не става :(

PHP:
$q = "SELECT COUNT(*) FROM search_table WHERE neighborhood = '$neighborhood' AND street = '$street' AND number = $number";
$result = mysql_query($q);
if ( $result['0'] > 0 )
echo " Този адрес вече съществува в базата данни ! ";
else    {
Когато пък е:
PHP:
if ( $result['0'] >= 0 )
всеки път резултата е, че има вече такъв запис.
 
PHP:
<?php
include_once "config.php";
$neighborhood = $_POST['neighborhood'];
$street = $_POST['street'];
$number = $_POST['number'];

//var_dump($_POST);

if (empty($neighborhood) || empty($street) || empty($number))
{
	echo "Задължително трябва да попълните всички полета !";
} else {

	if (!preg_match('/^[а-я0-9]+$/u', $neighborhood))  {
	 echo "Позволено е писането само на кирилица !";
          }
         elseif(!preg_match('/^[а-я0-9]+$/u', $street)){
         echo "Позволено е писането само на кирилица !";
         }
         elseif(!preg_match('/^[а-я0-9]+$/u', $number)){
         echo "Позволено е писането само на кирилица !";
         }
	else {
		if (isset($_POST['neighborhood']) && isset($_POST['street']) && isset($_POST['number']))
		{
			$q = mysql_fetch_row(mysql_query("SELECT COUNT(*) FROM `search_table` WHERE  `neighborhood` = '$neighborhood' AND `street` = '$street' AND `number` = '$number' "));
			if($q[0] > 0) echo "Този адрес вече съществува в базата данни !"; 
		} else {
			$chars = "SET CHARACTER SET utf8";
			mysql_query($chars);
			$query = mysql_query("INSERT INTO `search_table` (`neighborhood`, `street`, `number`) VALUES ('$neighborhood', '$street', $number)") 
				or die(mysql_error());
			if ($query) 
				echo "Успешно добавихте адреса !";
			else
				echo "Възникна някаква грешка !";
		}
	}
}
?>
 
PHP:
<?php
include_once "config.php";
$neighborhood = $_POST['neighborhood'];
$street = $_POST['street'];
$number = $_POST['number'];

//var_dump($_POST);

if (empty($neighborhood) || empty($street) || empty($number))
{
        echo "Задължително трябва да попълните всички полета !";
} else {

        if (!preg_match('/^[а-я0-9]+$/u', $neighborhood))  {
         echo "Позволено е писането само на кирилица !";
          }
         elseif(!preg_match('/^[а-я0-9]+$/u', $street)){
         echo "Позволено е писането само на кирилица !";
         }
         elseif(!preg_match('/^[а-я0-9]+$/u', $number)){
         echo "Позволено е писането само на кирилица !";
         }
        else {
                if (isset($_POST['neighborhood']) && isset($_POST['street']) && isset($_POST['number']))
                {
                        $qq = mysql_query("SELECT * FROM `search_table` WHERE  `neighborhood` = '$neighborhood' AND `street` = '$street' AND `number` = '$number' ");


                        if(mysql_num_rows($qq) > 0) { echo "Този адрес вече съществува в базата данни !"; 
                } else {
                        $chars = "SET CHARACTER SET utf8";
                        mysql_query($chars);
                        $query = mysql_query("INSERT INTO `search_table` (`neighborhood`, `street`, `number`) VALUES ('$neighborhood', '$street',  '$number')") 
                                or die(mysql_error());
                        if ($query) 
                                echo "Успешно добавихте адреса !";
                        else
                                echo "Възникна някаква грешка !";
                }
        }
}
?>
 
eddyy93 така въобще не се изпълнява нищо заради една скоба "}" накрая, но като я сложа отново не реве като му добавя вече съществуващ ред
 
Оправих се по следния начин:
PHP:
<?php


	ini_set('error_reporting', E_ALL);
	error_reporting(E_ALL);

	include_once "config.php";

	$neighborhood = $_POST['neighborhood'];
	$street = $_POST['street'];
	$number = $_POST['number'];


	if (empty($neighborhood) || empty($street) || empty($number)) 	echo "Задължително трябва да попълните всички полета !";
	else 
	{
         if ( checkVar ( $neighborhood ) ) 			echo "Поле 1: Позволено е писането само на кирилица!";
         elseif ( checkVar ($street) ) 				echo "Поле 2: Позволено е писането само на кирилица и с цифри !";
         elseif ( checkVar ($number) )				echo "Поле 3: Позволено е писането само на кирилица и с цифри !";
         else { 

		$sql = "SELECT COUNT(*) as cnt FROM `search_table` 
			   WHERE  `neighborhood` = '$neighborhood' 
			     AND `street` = '$street' 
			     AND `number` = '$number' ";
                $qq = mysql_query($sql, $dbh) 
			or die(mysql_error());
 
		$row = mysql_fetch_row($qq);
		mysql_free_result ( $qq );
		
		if ( isset($row))   echo "Този адрес вече съществува в базата данни !"; 
                else {  
			
                        $chars = "SET CHARACTER SET utf8";
                        mysql_query($chars, $dbh);
			$sql = "INSERT INTO `search_table` (`neighborhood`, `street`, `number`) 
						  VALUES ('$neighborhood', '$street',  '$number')" ;
                        mysql_query($sql, $dbh) 
			or die(mysql_error());
                        
			echo "Успешно добавихте адреса !"; 	
                }
             }
	}

mysql_close($dbh);

function checkVar($var, $mask = '/^[а-я0-9]+$/u' ) {
	return !preg_match($mask, $var);
}


?>

Целият проблем беше реално в един интервал между SELECT COUNT и (*) .

eddyy93 Благодаря все пак. +1
 

Горе