مقارنة قيم عمود في قاعدة البيانات بقيمة مدخلة من المستخدم
السلام عليكم
اعمل على موقع بحيث يقوم المستخدم بادخال بيانات مجلة ليتم تسجيلها في قاعدة البيانات
ولكن اريد اولا ان يتاكد من ان الرقم الـISSN للمجلة غير موجود في عمود ISSN الموجود في قاعدة البيانات. اذا كان غير موجود يضيف المجلة لقاعدة البيانات، اما اذا كان موجود فيخبره ان المجلة موجودة ويقوم بعرض معلومات هذه المجلة.
ساعد بالإجابة
"إن في قضاء حوائج الناس لذة لا يَعرفها إلا من جربها، فافعل الخير مهما استصغرته فإنك لا تدري أي حسنة تدخلك الجنة."
الإجابات (4)
وعليكم السلام ورحمة الله وبركاته
اذا ممكن استخدام زر اضافة الأكواد <> الموجود بالمحرر لاضافة جميع الاكواد لتسهل حل المشكلة بدل محاولة كتابة الاكواد من صورة ممكن نسخها ثم البدء بالحل مباشرة وشكرا
لحل المشكلة بحيث انه يتم التاكد من وجود رقم ISSN في قاعدة البيانات قبل اضافة اي record نستخدم خاصية UNIQUE Constraint في قاعدة البيانات بحيث انه Mysql راح تتاكد ان جميع المدخلات داخل هذا الحقل مميز وغير مكرر لاضافة record او يرجع لك خطأ انه يوجد خطأ
قمت بانشاء جدول بقاعدة البيانات عندي باسم magazine وعمل حقلين فقط id و ISSN وقمت باضافة UNIQUE للحقل ISSN هنا كود انشاء الجدول والحقل
CREATE TABLE `magazine` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`ISSN` int(11) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `ISSN` (`ISSN`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
اذا سبق بناء الجدول وجميع الحقول ممكن التعديل على الحقل باستخدام الأمر ALTER واضافة UNIQUE INDEX للحقل ISSN بواسطة هذا الأمر بقاعدة البيانات
ALTER TABLE magazine ADD UNIQUE (ISSN)
عند محاولة ادخال record جديد لقاعدة البيانات برقم ISSN مخزن مسبقا سوف ينتج خطأ
Duplicate entry '1' for key 'ISSN'
ولن يتم اضافة اي record جديد لقاعدة البيانات
<!DOCTYPE html>
<html><head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Script Eden ( http://scripteden.net/ ) Template Builder v2.0.0">
<!--pageMeta-->
<!-- Loading Bootstrap -->
<link href="bootstrap/css/bootstrap.css" rel="stylesheet">
<!-- Loading Flat UI -->
<link href="css/flat-ui.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
<link href="css/style.complete.css" rel="stylesheet">
</head>
<body >
<div class="wrapperDark" >
<div class="container" id="divider5" style="margin-left: -45px;">
<div class="col-md-12 ">
<div class="navbar-header">
<button data-target="#navbar-collapse-02" data-toggle="collapse" class="navbar-toggle" type="button">
<span class="sr-only">Toggle navigation</span>
</button>
<a href="#" class="navbar-brand brand"><img alt="" src="images/iconsearch.gif" > <b>Electronic filter for Scientific Journals</b></a>
</div>
<!-- from here new sec -->
<div class="container" id="divider7">
<div class="col-md-12" style="height: 10px;">
</div><!-- /.col -->
</div><!-- /.container -->
</div>
<!-- /.wrapperDark -->
<!-- until here -->
</div>
<!-- /.col -->
<!-- from here new sec -->
<div class="container" id="divider7">
<div class="col-md-12" style="height: 20px;">
</div><!-- /.col -->
</div><!-- /.container -->
</div>
<!-- /.wrapperDark -->
<!-- until here -->
<?php
$con = mysql_connect("sql110.byethost3.com","b3_17521222","321project");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("b3_17521222_FilterProject", $con);
$journalname =$_POST['journalname'];
if(isset($_POST[journalname])){
//$journalname =$_POST['journalname'];
$link =$_POST['link'];
$issn =$_POST['issn'];
$index =$_POST['index'];
$rank =$_POST['rank'];
$jdomain =$_POST['jdomain'];
$privat =$_POST['privat'];
$topic =$_POST['topic'];
$keyword =$_POST['keyword'];
$impact =$_POST['impact'];
$factornumber =$_POST['factornumber'];
$year =$_POST['year'];
$numberyear =$_POST['numberyear'];
$country =$_POST['country'];
$submit = $_POST['submit'];
$query = "SELECT ISSN form DataTable WHERE;
$result2 = mysql_query($query)
if($result2 == $issn ){
while($row = mysql_fetch_array($result2)) {
$name = $row["$journalname"];
echo "<br>";
echo "<br>";
echo "<br>";
echo '<table id="racetimes">';
echo '<tr id="firstrow" style="font-size: 15px; background-color: rgb(48,121,104);" data-selector="a.btn, button.btn" href="#" class="btn btn-primary btn-embossed"><th>There is Error, Please try again </th></tr>';
}
else{
$sql= "INSERT INTO DataTable (ID,Name,Link,ISSN,Indexx,Level,GDomin,PDomin,Title,Keyword,Factor,FactorValue,FirstIssues,NoIssuesyear,Country) VALUES(' ','journalname','link','issn','index','rank','jdomain','privat','topic','keyword','impact','factornumber','year','numberyear','country')";
$result = mysql_query($sql);
if(!$result)
{
echo "<br>";
echo "<br>";
echo "<br>";
echo "<table id="racetimes">";
echo "<tr id="firstrow" style="font-size: 15px; background-color: rgb(48,121,104);" data-selector="a.btn, button.btn" href="#" class="btn btn-primary btn-embossed";"><th> There is Error, Please try again </th></tr>";
}
echo "<br>";
echo "<br>";
echo "<br>";
echo "<table id="racetimes">";
echo "<tr id="firstrow" style="font-size: 15px; margin-left: 45px; background-color: rgb(48,121,104);" data-selector="a.btn, button.btn" href="#" class="btn btn-primary btn-embossed" ;"><th>The journal is successfully Add it to Database</th></tr>";
}
}
mysql_close($con)
?>
</body>
</html>
هذا هو الكود
ونحن لم نقم بانشاء الجدول باستخدام الكود بل مباشرة من الموقع، فكيف اضيف هذه الميزه إلى العمود ؟
بواسطة phpMyAdmin كل الي عليك تحديد قاعدة البيانات ثم الضغط على الجدول المطلوب magazine بعدها الضغط على زر Structure بعدها من قائمة Action الخاص بالحقل ISSN نحدد انه Unique
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !