2016-03-27 22 views
-1
Bir veritabanında bir sütunun son eklenen değere eklemek ister

bir satırın bir son eklenen id 1 ekleyin. Herhangi bir hata almıyorum ama sorgu son eklenen değere 1 eklemiyor.mysql ve php

Not; Maksimum kimliği almak için MAX(id)'u kullandım, ancak buna 1 eklemiyor. Neyi yanlış yapıyorum?

<?php 
session_start(); 
ob_start(); 
if (isset($_POST['submit'])) { 
    $pin = htmlspecialchars(trim($_POST['pin'])); 
    $surName = htmlspecialchars(trim($_POST['surName'])); 
    $firstName = htmlspecialchars(trim($_POST['firstName'])); 
    $otherName = htmlspecialchars(trim($_POST['otherName'])); 
    $email = htmlspecialchars(trim($_POST['email'])); 
    $passWord = md5(trim($_POST['passWord'])); 
    $confirmPass = md5(trim($_POST['confirmPass'])); 
    $date_added = date('Y.m.d - H:i:s'); 
    $year = (100 . 'L'); 
    $studentId = 201600001; 

    if ((empty($pin && $surName && $firstName && $otherName &&  $email && $passWord && $confirmPass) == false) && ($passWord) == ($confirmPass)) 
{ 
include "dbconnect.php"; 
$sql = "SELECT * FROM `sono` WHERE `pin`='$pin'"; 
$check = mysqli_query($dbconnect, $sql); 
$numrow = mysqli_num_rows ($check); 
if ($numrow == 1) 
{ 
    $rows=mysqli_fetch_assoc($check); 
    $Email = $rows['eMail']; 
    if ($Email == false) 
    { 
     $query = "SELECT * FROM `sono` WHERE `eMail`='$email'"; 
     $check = mysqli_query($dbconnect, $query); 
     $numrow = mysqli_num_rows($check); 
     if ($numrow == 0) 
     { 

       $sql = "INSERT INTO `sono_nextofkin` (`eMail`) VALUES ('$email')"; 
       mysqli_query($dbconnect, $sql); 
       $query = "INSERT INTO `sono_0level_results` (`eMail`) VALUES ('$email')"; 
       mysqli_query($dbconnect, $query); 
       $query = "UPDATE `sono` SET `surName`='$surName', `firstName`='$firstName', `otherName`='$otherName', `eMail`='$email', `passWord`='$passWord', `confirmPass`='$confirmPass', `date_added`='$date_added', `year`='$year', `studentid`='$studentId' WHERE `pin`='$pin'"; 
       mysqli_query($dbconnect, $query); 
       $max = "SELECT * MAX(`studentid`) FROM `sono`"; 
       $max2 = mysqli_query ($dbconnect, $max); 
       $update = "UPDATE `sono` SET `MAX(`studentid`) = '$studentId' + 1 WHERE `pin`='$pin'"; 
       mysqli_query ($dbconnect, $update);      
       $query = "SELECT `id` as idmax FROM `sono`"; 
       $result = mysqli_query($dbconnect, $query) or die (mysqli_error($dbconnect)); 
       $rowa = mysqli_fetch_array($result); 
       $rw = $rowa['idmax']; 
       $rwo = $rw+1; 
       $rwo = str_pad($rwo,4,'0',STR_PAD_LEFT); 
       $sql = "UPDATE `sono` SET `id`='$rwo' WHERE `pin`='$pin'"; 
       $result = mysqli_query($dbconnect, $sql); 
       $_SESSION['surName'] = $surName; 
       $_SESSION['firstName'] = $firstName; 
       $_SESSION['otherName'] = $otherName; 
       $_SESSION['email'] = $email; 
       $_SESSION['passWord'] = $passWord; 



       $msg= "<p style = 'color: green; padding-left: 0'>Registration successful,<a href='passport.php'> >>>Click here to proceed<<<</a></p>"; 
       } else 
       $msg= "<p style = 'color: red; padding-left: 0'>Email already used, use another valid email to register</p>"; 
       } else 
       $msg= "<p style = 'color: red; padding-left: 0'>The pin has been used</p>"; 
       } else 
       $msg= "<p style = 'color: red; padding-left: 0'>The pin enter does not exist</p>"; 
       } else 
       $msg= "<p style = 'color: red; padding-left: 0'>Please enter your names, pin, email and password to start registration</p>"; 

    } 
    ?> 
+4

Sen autoincremented kimliği ile tamircilik asla. Bu değeri yalnız bırakın ve hiçbir zaman ona hiçbir sayı eklemeyin –

+0

Teşekkürler ... Ama otoantrement ile başka bir idim var. Şimdilik atıfta bulunduğum Kimlik otomatik olarak ele alınmıyor. –

cevap

0

Eğer SQL sorgusu

$update = "UPDATE `sono` SET `studentid` = MAX(`studentid`) + 1 WHERE `pin`='$pin'"; 

VEYA

Kullanım LAST_INSERT_ID() gibi yapmalıdır.

VEYA

Ayrıca PHP kullanarak bunu elde etmek için mysqli_insert_id() kullanabilirsiniz.

+0

Teşekkürler ... Lütfen daha ayrıntılı olabilir misiniz? Hangisini bir tane ekleyeceğim. Seçtiğim sütun mu yoksa eklemek/güncellemek istediğim değer mi? –

+0

genel Sorgu birer herhangi bir sütun değerini güncellemek ama emin sütun 'column_name' = MAX (' column_name') SET table_name' 'tipi sayısal – Kunal

+0

UPDATE yapmak koşulları – Kunal