Проверка в ДБ за повторение

SayliS

Registered
Привет.
Искам преди да въведа информация в базата данни да проверя дали тя вече несъществува. Правя го, но не както трябва защото ми проверява само последния запис. Ето ми кода и дано можете да ми помогнете :)

Код:
require_once('config.inc.php');
// Poverka za povtorenie
$select = "SELECT * FROM data";
$results_select = mysql_query($select) or die (mysql_error());
while ($row = mysql_fetch_array($results_select)) {
	$db_dyma = $row['pravilna'];
}

if ($dyma == $db_dyma)  {
	$core =<<<SayliS
	<center><font color="red">Думата вече е била въведена в базата данни.</font>
	 <p>За да въведете нова дума <a href="form.htm" target="_self">ТУК</a>.</p>
     <p>За да видите въведените думи <a href="select.php" target="_self">ТУК</a>.</p>
	</center>
SayliS;
echo $core;
	
}else{ 
	// End == Proverka
	//Vnasqne v DB
$insert = "INSERT INTO data ( pravilna, greshna_1, greshna_2, greshna_3, slojnost, date, ip) 
	VALUES ('$dyma', '$greshna_1', '$greshna_2', '$greshna_3', '$slojnost', CURRENT_TIMESTAMP, '$ip')";
$results = mysql_query($insert) or die (mysql_error());

$footer =<<<SayliS
    <center><font color="green">Данните са въведени успешно</font>
    <br/>
     <p>За да въведете нова дума <a href="form.htm" target="_self">ТУК</a>.</p>
     <p>За да видите въведените думи <a href="select.php" target="_self">ТУК</a>.</p>
	</center>
  </body>
</html>
SayliS;
echo $footer;
}

	}
 
така ?
Код:
require_once('config.inc.php');
// Poverka za povtorenie
$select = "SELECT * FROM data";
$results_select = mysql_query($select) or die (mysql_error());
while ($row = mysql_fetch_array($results_select)) {
   $db_dyma = $row['pravilna'];
if ($dyma == $db_dyma)  {
   $core =<<<SayliS
   <center><font color="red">Думата вече е била въведена в базата данни.</font>
    <p>За да въведете нова дума <a href="form.htm" target="_self">ТУК</a>.</p>
     <p>За да видите въведените думи <a href="select.php" target="_self">ТУК</a>.</p>
   </center>
SayliS;
echo $core;
   
}else{
   // End == Proverka
   //Vnasqne v DB
$insert = "INSERT INTO data ( pravilna, greshna_1, greshna_2, greshna_3, slojnost, date, ip)
   VALUES ('$dyma', '$greshna_1', '$greshna_2', '$greshna_3', '$slojnost', CURRENT_TIMESTAMP, '$ip')";
$results = mysql_query($insert) or die (mysql_error());

$footer =<<<SayliS
    <center><font color="green">Данните са въведени успешно</font>
    <br/>
     <p>За да въведете нова дума <a href="form.htm" target="_self">ТУК</a>.</p>
     <p>За да видите въведените думи <a href="select.php" target="_self">ТУК</a>.</p>
   </center>
  </body>
</html>
SayliS;
echo $footer;
}
}


   }
 
Така го пробвах и аз и прави толкова записи, колко думи имам в ДБ и несъвпадат 8) , но намерих как да го поправя просто промених в горния си код
Код:
$select = "SELECT pravilna FROM data WHERE `pravilna` LIKE '$dyma'";
където дума ми е
Код:
$dyma = $_POST['dyma'];
и работи само един мъничак проблем. Когато въвеждам нова дума(да е няма в ДБ) ми дава предупреждението
Код:
Notice: Undefined variable: db_dyma in E:\htdocs\php\bgproject\user_insert.php on line 37
има ли как да го избегна без да го спирам от конф-а на пхп-то :)
 
значи наи добре така

$select = "SELECT pravilna FROM data WHERE `pravilna` LIKE '$dyma' ";
$result=mysql_query($select);

и после просто преброяваш колко полета е селектирало при заявката
$broi=mysql_num_rows($result);
ако думата вече е записана то ще ти върне число по голямо от 0
if($broi>0){echo "тази дума вече е записана в Базата от Данни";}
 
mute каза:
значи наи добре така

$select = "SELECT pravilna FROM data WHERE `pravilna` LIKE '$dyma' ";
$result=mysql_query($select);

и после просто преброяваш колко полета е селектирало при заявката
$broi=mysql_num_rows($result);
ако думата вече е записана то ще ти върне число по голямо от 0
if($broi>0){echo "тази дума вече е записана в Базата от Данни";}
и аз го правя така в моите кодове :) така няма да ти изкарва грешката
 
Благодаря работи... и аз го мислех така, но правех $db_dyma > ... а неброях редовете. Пак мерси за помоща работи вече :)
 

Back
Горе