用数字限制数据库行的插入


restrict database row insert by a number?

根据我的代码,我需要将数据的插入限制为 3,我的意思是就像插入 3 个数据行后,它将被限制插入数据。这可能吗?更多信息,就像借用插入3次一样,那么就不能再插入了。有什么办法吗?顺便说一下,我还在学习php,谢谢。

if(isset($_POST['selector']))
$id=$_POST['selector'];
else
$id = '';
$member_id  = $_POST['member_id'];
$due_date  = $_POST['due_date'];
$isbn  = $_POST['due_date'];
if ($id == '' ){
//header("location: borrow.php");
if(isset($_POST['isbn'])){
    $isbn = $_POST['isbn'];
    $query = mysql_query("select book_id from book WHERE isbn = '$isbn'")or die(mysql_error());
    $count = mysql_num_rows($query);
        if($count > 0){
            $row = mysql_fetch_array($query);
            $bookid = $row['book_id'];
            $date =  date('Y-m-d');
        }
    mysql_query("insert into borrow (member_id,book_id,date_borrow,due_date) values         ('$member_id','$bookid','$date','$due_date')")or die(mysql_error());     
}
else{
  header("location: borrow.php");
}
}else{
mysql_query("insert into borrow (member_id,date_borrow,due_date) values ('$member_id',NOW(),'$due_date')")or die(mysql_error());
$query = mysql_query("select * from borrow order by borrow_id DESC")or die(mysql_error());
$row = mysql_fetch_array($query);
$borrow_id  = $row['borrow_id'];
}else{
mysql_query("insert into borrow (member_id,date_borrow,due_date) values ('$member_id',NOW(),'$due_date')")or die(mysql_error());
$query = mysql_query("select * from borrow order by borrow_id DESC")or die(mysql_error());
$row = mysql_fetch_array($query);
$borrow_id  = $row['borrow_id'];
$N = count($id);
for($i=0; $i < $N; $i++)
{
mysql_query("insert borrowdetails (book_id,borrow_id,borrow_status)             
values('$id[$i]','$borrow_id','pending')")or die(mysql_error());
}
header("location: borrow.php");
} 

您只需要在进行新插入之前计算用户行数:

$query = mysql_query("SELECT COUNT(*) AS count FROM borrow WHERE member_id = '".$member_id."'");
$row = mysql_fetch_assoc($query);
if ( $row['count'] >= 3 )
    echo('Max insert');

另外,请检查这个:为什么我不应该在PHP中使用mysql_*函数?

我不确定我是否正确理解了你。您可以使用 LIMIT 子句限制 SELECT 查询返回的行数。

确保你要么在那里放一个 ORDER BY 子句,要么确定你不在乎"哪"3 行将入。

看这里:http://dev.mysql.com/doc/refman/5.0/en/select.html