مقارنة قيم عمود في قاعدة البيانات بقيمة مدخلة من المستخدم

afnan • منذ 7 سنوات

السلام عليكم

اعمل على موقع بحيث يقوم المستخدم بادخال بيانات مجلة ليتم تسجيلها في قاعدة البيانات 

ولكن اريد اولا ان يتاكد من ان الرقم الـISSN للمجلة غير موجود في عمود ISSN الموجود في قاعدة البيانات. اذا كان غير موجود يضيف المجلة لقاعدة البيانات، اما اذا كان موجود فيخبره ان المجلة موجودة ويقوم بعرض معلومات هذه المجلة.

 

 

Screen Shot 2016-04-18 at 10.43.55 PM.png

Screen Shot 2016-04-18 at 10.43.59 PM.png

Screen Shot 2016-04-18 at 10.44.02 PM.png

570fa43458442_ScreenShot2016-04-14at5.06.39PM.thumb.png.941844d8bae1fae4c76e750442842384.png

كلمات دليلية:

ساعد بالإجابة

"إن في قضاء حوائج الناس لذة لا يَعرفها إلا من جربها، فافعل الخير مهما استصغرته فإنك لا تدري أي حسنة تدخلك الجنة."

الإجابات (4)

Ali Majrashi • منذ 7 سنوات

وعليكم السلام ورحمة الله وبركاته 

اذا ممكن استخدام زر اضافة الأكواد <> الموجود بالمحرر لاضافة جميع الاكواد لتسهل حل المشكلة بدل محاولة كتابة الاكواد من صورة ممكن نسخها ثم البدء بالحل مباشرة وشكرا

Ali Majrashi • منذ 7 سنوات

لحل المشكلة بحيث انه يتم التاكد من وجود رقم 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 جديد لقاعدة البيانات

afnan • منذ 7 سنوات

<!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>

 

 

هذا هو الكود 

ونحن لم نقم بانشاء الجدول باستخدام الكود بل مباشرة من الموقع، فكيف اضيف هذه الميزه إلى العمود ؟

Ali Majrashi • منذ 7 سنوات

بواسطة phpMyAdmin كل الي عليك تحديد قاعدة البيانات ثم الضغط على الجدول المطلوب magazine بعدها الضغط على زر  Structure بعدها من قائمة Action الخاص بالحقل ISSN نحدد انه Unique

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !