Я только начал изучать PHP – Не очень хорошо. Я создал форму (см. Ниже), которую я бы хотел, чтобы люди подписывались, но я хотел бы ограничить это определенным числом участников. Например, 4 пользователя могут зарегистрироваться, когда он достигнет этой суммы, он скроет форму и отобразит сообщение с сообщением «извините, вы достигли предела учетной записи пользователя».
<form action="users.php?new=1" method="post"> <input type="hidden" name="action" value="newUser"/> <input type="hidden" name="id" value="0"/> <fieldset> <legend>Add new user</legend> <?php if(isset($msg)) { echo $msg;}?> <p> <label>Full name: </label> <input name="name" value="<?php if(isset($name)) { echo $name;}?>" style="width:400px;"/> </p> <p> <label>Email: </label> <input name="email" value="<?php if(isset($email)) { echo $email;}?>" style="width:400px;"/> </p> <p> <label>Password: </label> <input name="password" type="password" value="" style="width:400px;"/> </p> <p> <label>Phone number: </label> <input name="phone" value="<?php if(isset($phone)) { echo $phone;}?>" style="width:400px;"/> </p> <p> <label>User level:</label> <select name="access" class="dropdown"> <option value="no" <?php if(isset($access)) { if ($access =='no'){ echo ' selected="selected" ';}}?>>User</option> <option value="yes" <?php if(isset($access)) { if ($access =='yes'){ echo ' selected="selected" ';}}?>>Admin</option> </select>
Примечание. Пользователи-администраторы получат полный доступ ко всем областям.
Пожалуйста, помогите мне! Код был бы прекрасен!
Спасибо, Чарли
<?php $connection=mysqli_connect("host", "username", "password", "database"); $sql="SELECT COUNT(*) from database_users"; $stmt = $connection->prepare($sql); $stmt->execute(); $res = $stmt->get_result(); $users = $res->fetch_array(MYSQLI_ASSOC); if ($users['COUNT(*)'] < 4) { ?> // html goes here, outside of the php tags <?php } else { echo "Sorry, you have reached the user account limit."; }; ?>
Используя любой метод базы данных, который вы используете, вы должны заглянуть в базу данных и посмотреть, сколько результатов будет возвращено. Если их 4 или более, то не отображать форму, если нет, а затем отображать ее.
Увидев, что вы новичок в PHP, шансы вашего языка базы данных будут mysql_*
, что не очень хорошо, но, к сожалению, оно широко распространено в Интернете.
Пожалуйста, mysqli_*
PDO
или mysqli_*
если вы еще этого не сделали.
Если вы используете mysqli:
<?php $con=mysqli_connect("host", "username", "password", "database"); if (mysqli_connect_errno($con)) { echo "Failed to connect: " . mysqli_connect_error(); } $sql= "SELECT * FROM table"; if ($result=mysqli_query($con,$sql){ $rowcount = mysqli_num_rows($result); }
Затем вы можете использовать $rowcount
в if
посмотреть, больше ли это 4.
например.
if ($rowcount > 4){ echo "Sorry, no more users can sign up"; }else{ //form here }