php pdo代码获取循环内部的最大值并插入行

时间:2015-02-02 13:56:08

标签: php pdo

专栏 - book_no

我根据用户的输入值确定了forloop循环插入查询。

但是如果DB在book_no列中的最大值为5,那么下次在book_no列中插入的值将从6开始。

例如:假设我的book_no列已经存在于DB中的1,2,3,4,5值,现在我在UI FORM中的book_no文本框中输入3。 然后我的代码再次插入3个新行,而book_no列中的值是6,7,8。

plz建议如何从DB中获取最大值并获得内部循环。

 $book_no = $_POST['book_no'];                  
 $created = date("Y-m-d H:i:s");
 $sub_inner = $database->getRows("SELECT MAX(book_no) FROM scheme_master where book_no = :book_no",
 array(':book_no'=>$book_no)); 
 $max =     $exists['maxbook_no'] + 1;
 for($row=1;$row<=$book_no;$row++)
 {  
     $insertrow = $database->insertRow("INSERT INTO scheme_master (book_no,created) VALUES (:book_no,:created)", 
     array(':book_no'=>$max,':created'=>$created));
 }

1 个答案:

答案 0 :(得分:0)

如果有效,请尝试使用此代码,编辑它以绑定您的值

<?php 
$db = new PDO('mysql:host=mysql.serversfree.com; dbname=u615496488_data','u615496488_data','24222222');
if(isset($_POST['submit'])){
$number = $_POST['text'];
for ($i = 1; $i <= $number ; $i++) { 
    $results = $db->query('SELECT * FROM book_no');
    $max = $results->rowCount() + 1; //get the max number by getting row count
    $db->exec("INSERT INTO `book_no`(`Book_No`) VALUES ($max)");
}
}
?>

see demo here