2016-06-10 22 views
2

Hallo alle iv haben versucht für ungefähr eine Stunde, um einen einfachen Code zu finden, der mein "Kontakt hinzufügen" -Formular prüft, ob es keine Duplikate des Feldes "ext" gibt, aber ich kann nicht scheinen, es zu bekommen arbeiten :(Meldungsfeld für doppelte Einträge

Grundsätzlich muss es überprüfen, ob es bereits eine ext Anzahl von gleichem Wert ist und dann eine Meldung, die besagt

<?php 
mysql_connect("localhost", "root", "password") or die(mysql_error()); 
mysql_select_db("phonebook") or die(mysql_error()); 
$mode = $_GET['mode']; 
$checkSql="select count(id) as eCount from address"; 
$result = mysql_query($checkSql); 
$row = mysql_fetch_assoc($result); 
if($row['eCount'] == 999) { 
    $disable = 1; 
} 
switch($mode) { 
    case 'add': 
    ?> 
<h2>Add Contact</h2> 
<form name="form1" action="<?=$_SERVER['PHP_SELF'];?>?mode=added" method="post"> 
    <div align="center"> 
     <table class="searchable"> 
      <tr><td>Extension:</td><td><div align="left"> 
       <input type="text" name="ext" /> 
      </div></td></tr> 
      <tr><td>Name:</td><td><div align="left"> 
       <input type="text" name="name" /> 
      </div></td></tr> 
      <tr><td>Department:</td><td><div align="left"> 
       <input type="text" name="department" /> 
      </div></td></tr> 
      <tr><td>Email:</td><td><div align="left"> 
       <input type="text" name="email" /> 
      </div></td></tr> 
      <tr><td>Cellphone:</td><td><div align="left"> 
       <input type="text" name="phone" /> 
      </div></td></tr> 
      <tr><td colspan="2" align="center"><a href="javascript:history.go(-1);">Back</a> | <input name="Submit" type="submit" id="Submit" value="Add New Contact" <?php if($disable ==1){?>disabled<?php } ?>/></td></tr> 
      <input type="hidden" name="mode" value="added"> 
     </table> 
    </div> 
</form> 
<?php 
break; 
case 'added': 
    $name = $_POST['name']; 
    $phone = $_POST['phone']; 
    $email = $_POST['email']; 
    $department = $_POST['department']; 
    $ext = $_POST ['ext']; 
    $sql = "INSERT INTO address (ext, name, department ,email, phone) VALUES ('" . $ext . "','" . $name . "','" . $department . "', '" . $email . "', '" . $phone . "')"; 
    mysql_query($sql); 
    header('location: ' . $_SERVER['PHP_SELF']); 
break; 
+0

Hinweis: Die 'mysql_ *' Funktionen veraltet sind, haben sie von PHP 7 entfernt worden ist, wird der Code nicht mehr funktioniert, wenn Sie auf diese Version aktualisieren. Sie sollten keinen neuen Code mit ihnen schreiben, sondern stattdessen [mysqli_ * oder PDO] (http://php.net/manual/en/mysqlinfo.api.choosing.php) verwenden. –

Antwort

1

Dies sollte die Arbeit machen „Nebenstellennummer ist bereits vorhanden“
$checkSql="select count(id) as eCount from address where ext = " . $_POST['ext']; 

Sie verwenden jedoch die veraltete Version von MySQL. Ziehen Sie stattdessen eine Aktualisierung auf MySQLi oder PDO in Betracht.

Sie können Ihren Code auch aktualisieren, um eine Fehlermeldung zu erhalten. Zum Beispiel:

if($row['eCount'] > 0) { 
    echo "Extension Number already exists"; 
    $mode = 'add'; 
} 

Dies würde überprüfen, um zu sehen, ob die Nebenstellennummer bereits vorhanden ist, drucken Sie die Fehlermeldung, und zeigt wieder das Formular aus.

+0

danke Sir funktioniert perfekt :) –

+0

könnten Sie mir mit einer weiteren Sache wenn möglich helfen? –

+1

Sicher, frag mich :) –

0

Ich habe nicht verstanden, warum Sie Schalter verwendet haben. Ich habe es nicht benutzt, aber wie du erwähnt hast, überprüfe ich, bevor ich extention no hinzufüge und wenn es bereits existiert, dann gebe ich eine Nachricht, die sonst als neuer Datensatz hinzugefügt wird.

index.php 



    <?php 
     $message = ''; 
     mysql_connect("localhost", "root", "root") or die(mysql_error()); 
     mysql_select_db("phonebook") or die(mysql_error()); 
     if (isset($_POST['submit'])){ 
     $name = $_POST['name']; 
     $phone = $_POST['phone']; 
     $email = $_POST['email']; 
     $department = $_POST['department']; 
     $ext = $_POST['ext']; 
     $checkSql = "select count(id) as eCount from address where ext = " . $_POST['ext'].""; 
     $result = mysql_query($checkSql); 
     $data=mysql_fetch_assoc($result); 
     if($data['eCount'] == 0){ 
// as you have check it to 999 so if you want that it should be less than or equal to 999 times only then you can check `$data['eCount']<= 999` then do entry otherwise error message 
     $name = $_POST['name']; 
     $phone = $_POST['phone']; 
     $email = $_POST['email']; 
     $department = $_POST['department']; 
     $ext = $_POST ['ext']; 
     $sql = "INSERT INTO address (ext, name, department ,email, phone) VALUES ('" . $ext . "','" . $name . "','" . $department . "', '" . $email . "', '" . $phone . "')"; 
     mysql_query($sql); 
     $message = "Entery has been done successfully"; 
     $_POST = array(); 
     }else { 

      $message = "Selected extension number $ext already exist"; 
     } 
     } 
     ?> 

     <h2>Add Contact</h2> 
     <form name="form1" action="" method="post"> 
      <div align="center"> 
       <table class="searchable"> 
       <tr><td colspan="2"><h3><?php echo $message;?></h3></td></tr> 
        <tr><td>Extension:</td><td><div align="left"> 
         <input type="text" name="ext" value="<?php if(isset($_POST['ext'])){echo $_POST['ext'];}?>" /> 
        </div></td></tr> 
        <tr><td>Name:</td><td><div align="left"> 
         <input type="text" name="name" value="<?php if(isset($_POST['name'])){echo $_POST['name'];}?>" /> 
        </div></td></tr> 
        <tr><td>Department:</td><td><div align="left"> 
         <input type="text" name="department" value="<?php if(isset($_POST['department'])){echo $_POST['department'];}?>"/> 
        </div></td></tr> 
        <tr><td>Email:</td><td><div align="left"> 
         <input type="text" name="email" value="<?php if(isset($_POST['email'])){echo $_POST['email'];}?>"/> 
        </div></td></tr> 
        <tr><td>Cellphone:</td><td><div align="left"> 
         <input type="text" name="phone" value="<?php if(isset($_POST['phone'])){echo $_POST['phone'];}?>" /> 
        </div></td></tr> 
        <tr><td colspan="2" align="center"><a href="javascript:history.go(-1);">Back</a> | <input name="submit" type="submit" id="Submit" value="Add New Contact"/></td></tr> 

       </table> 
      </div> 
     </form> 
1
Add this below code to below $ext = $_POST ['ext']; and i hope you close the bracket '}' of switch case if yes then remove last bracket from my solution code i hope it's helpfull for you 


$check_ext ="SELECT * FROM address WHERE ext = ".$ext; 
    $con = mysql_connect("localhost", "root", "password") or die(mysql_error()); 
    $checked_ext = mysqli_query($con,$check_ext); 
    $data_chk = mysqli_fetch_array($checked_ext, MYSQLI_NUM); 
    if($data_chk[0]>1) 
    {echo "Extension Number already exists";} 
    else{ 
    $sql = "INSERT INTO address (ext, name, department ,email, phone) VALUES ('" . $ext . "','" . $name . "','" . $department . "', '" . $email . "', '" . $phone . "')"; 
    mysql_query($sql); 
    header('location: ' . $_SERVER['PHP_SELF']); 
    } 
    break; 

}

Verwandte Themen