Как ограничить загрузку документов!
Например: – Если база данных уже имеет 5 записей, она не должна принимать 6-ю запись. И показать, что у вас может быть только 5 документов
Мой код: –
<?php error_reporting( ~E_NOTICE ); // avoid notice require_once 'dbconfig.php'; if(isset($_POST['btnsave'])) { $username = $_POST['user_name'];// user name $userjob = $_POST['user_job'];// user email $imgFile = $_FILES['user_image']['name']; $tmp_dir = $_FILES['user_image']['tmp_name']; $imgSize = $_FILES['user_image']['size']; if(empty($username)){ $errMSG = "Please Enter Name."; } else if(empty($userjob)){ $errMSG = "Please Enter Description."; } else if(empty($imgFile)){ $errMSG = "Please Select Image File."; } else { $upload_dir = 'user_images/'; // upload directory $imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension // valid image extensions $valid_extensions = array('jpeg', 'jpg', 'png', 'gif', 'txt'); // valid extensions // rename uploading image $userpic = rand(1000,1000000).".".$imgExt; // allow valid image file formats if(in_array($imgExt, $valid_extensions)){ // Check file size if($imgSize < 10000000) { move_uploaded_file($tmp_dir,$upload_dir.$userpic); } else{ $errMSG = "Sorry, your file is too large."; } } else{ $errMSG = "Sorry, this file is not allowed."; } } // if no error occured, continue .... if(!isset($errMSG)) { $stmt = $DB_con->prepare('INSERT INTO tbl_users(userName,userProfession,userPic) VALUES(:uname, :ujob, :upic)'); $stmt->bindParam(':uname',$username); $stmt->bindParam(':ujob',$userjob); $stmt->bindParam(':upic',$userpic); if($stmt->execute()) { $successMSG = "new record succesfully inserted ..."; header("refresh:1;index.php"); // redirects image view page after 1 seconds. } else { $errMSG = "error while inserting...."; } } } ?>
Итак, что я должен добавить, чтобы дать мой результат!
Я хочу только 5 документов в моей базе данных. Если пользователь пытается добавить более 5 документов, следует показать ошибку.
Сначала подсчитайте данные tbl_users
и проверьте, не tbl_users
ли строки 5, вставьте новые данные:
$errMSG = ""; error_reporting( ~E_NOTICE ); // avoid notice require_once 'dbconfig.php'; $continue = true; $data = $DB_con->query("SELECT COUNT(*) AS rows FROM tbl_users WHERE 1")->fetchall(); $count = $data[0]['rows']; if($count >= 5) $continue = false; if($continue): if(isset($_POST['btnsave'])) { $username = $_POST['user_name'];// user name $userjob = $_POST['user_job'];// user email $imgFile = $_FILES['user_image']['name']; $tmp_dir = $_FILES['user_image']['tmp_name']; $imgSize = $_FILES['user_image']['size']; if(empty($username)){ $errMSG = "Please Enter Name."; } else if(empty($userjob)){ $errMSG = "Please Enter Description."; } else if(empty($imgFile)){ $errMSG = "Please Select Image File."; } else { $upload_dir = 'user_images/'; // upload directory $imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension // valid image extensions $valid_extensions = array('jpeg', 'jpg', 'png', 'gif', 'txt'); // valid extensions // rename uploading image $userpic = rand(1000,1000000).".".$imgExt; // allow valid image file formats if(in_array($imgExt, $valid_extensions)){ // Check file size if($imgSize < 10000000) { move_uploaded_file($tmp_dir,$upload_dir.$userpic); } else{ $errMSG = "Sorry, your file is too large."; } } else{ $errMSG = "Sorry, this file is not allowed."; } } // if no error occured, continue .... if(!isset($errMSG)) { $stmt = $DB_con->prepare('INSERT INTO tbl_users(userName,userProfession,userPic) VALUES(:uname, :ujob, :upic)'); $stmt->bindParam(':uname',$username); $stmt->bindParam(':ujob',$userjob); $stmt->bindParam(':upic',$userpic); if($stmt->execute()) { $successMSG = "new record succesfully inserted ..."; header("refresh:1;index.php"); // redirects image view page after 1 seconds. } else { $errMSG = "error while inserting...."; } } } else: $errMSG = "You already insert 5 rows"; endif;
+1 голосование за помощь
Ответ helpinMC частично решает ваш вопрос.
Есть две небольшие ошибки в оказании помощи
1) Strike of
:
fromelse:
} else $errMSG = "You already insert 5 rows"; endif;
2) Измените
if($count >= 5)
наif($count < 5)
$count = $data[0]['rows']; if($count < 5) {
После изменения этих двух ошибок ответ на helpinMC будет работать! Но, увидев ваши комментарии, особенно Ограничение загрузки документов и Ограничение загрузки документов, оно не даст результата по вашему желанию.
Так что вы хотите здесь: –
<?php error_reporting( ~E_NOTICE ); // avoid notice require_once 'dbconfig.php'; if(isset($_POST['btnsave'])) { $username = $_POST['user_name'];// user name $userjob = $_POST['user_job'];// user email $imgFile = $_FILES['user_image']['name']; $tmp_dir = $_FILES['user_image']['tmp_name']; $imgSize = $_FILES['user_image']['size']; if(empty($username)){ $errMSG = "Please Enter Name."; } else if(empty($userjob)){ $errMSG = "Please Enter Description."; } else if(empty($imgFile)){ $errMSG = "Please Select Image File."; } else { $upload_dir = 'user_images/'; // upload directory $imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension // valid image extensions $valid_extensions = array('jpeg', 'jpg', 'png', 'gif', 'txt'); // valid extensions // rename uploading image $userpic = rand(1000,1000000).".".$imgExt; // allow valid image file formats if(in_array($imgExt, $valid_extensions)){ // Check file size if($imgSize < 10000000) { move_uploaded_file($tmp_dir,$upload_dir.$userpic); } else{ $errMSG = "Sorry, your file is too large."; } } else{ $errMSG = "Sorry, this file is not allowed."; } } // if no error occured, continue .... if(!isset($errMSG)) { $stmt = $DB_con->prepare('INSERT INTO tbl_users(userName,userProfession,userPic) VALUES(:uname, :ujob, :upic)'); $stmt->bindParam(':uname',$username); $stmt->bindParam(':ujob',$userjob); $stmt->bindParam(':upic',$userpic); $data = $DB_con->query("SELECT COUNT(*) AS rows FROM tbl_users WHERE 1")->fetchall(); $count = $data[0]['rows']; if($count < 5) { if($stmt->execute()) { $successMSG = "new record succesfully inserted ..."; header("refresh:1;index.php"); // redirects image view page after 1 seconds. } else { $errMSG = "error while inserting...."; } } else { $errMSG = "You already insert 5 rows"; } } } ?>
Я только что отредактировал размещение кодов. Ответил helpinMC и исправил некоторые ошибки в ответ на helpinMC .
Надеюсь, это сработает.
Рассмотрим следующее:
DROP TABLE my_table; CREATE TABLE my_table (id int auto_increment PRIMARY KEY ,val char(1) NOT NULL ); Query OK, 0 rows affected (0.02 sec) INSERT INTO my_table (val) SELECT 'b' FROM (SELECT 1) x WHERE (SELECT COUNT(*) FROM my_table) < 5; Query OK, 1 row affected (0.00 sec) Records: 1 Duplicates: 0 Warnings: 0 INSERT INTO my_table (val) SELECT 'b' FROM (SELECT 1) x WHERE (SELECT COUNT(*) FROM my_table) < 5; Query OK, 1 row affected (0.00 sec) Records: 1 Duplicates: 0 Warnings: 0 INSERT INTO my_table (val) SELECT 'b' FROM (SELECT 1) x WHERE (SELECT COUNT(*) FROM my_table) < 5; Query OK, 1 row affected (0.00 sec) Records: 1 Duplicates: 0 Warnings: 0 INSERT INTO my_table (val) SELECT 'b' FROM (SELECT 1) x WHERE (SELECT COUNT(*) FROM my_table) < 5; Query OK, 1 row affected (0.00 sec) Records: 1 Duplicates: 0 Warnings: 0 INSERT INTO my_table (val) SELECT 'b' FROM (SELECT 1) x WHERE (SELECT COUNT(*) FROM my_table) < 5; Query OK, 1 row affected (0.00 sec) Records: 1 Duplicates: 0 Warnings: 0 INSERT INTO my_table (val) SELECT 'b' FROM (SELECT 1) x WHERE (SELECT COUNT(*) FROM my_table) < 5; Query OK, 0 rows affected (0.00 sec) Records: 0 Duplicates: 0 Warnings: 0 SELECT * FROM my_table; +----+-----+ | id | val | +----+-----+ | 1 | b | | 2 | b | | 3 | b | | 4 | b | | 5 | b | +----+-----+