Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ograniczenie rekordów
Forum PHP.pl > Forum > PHP
kiepski96
Witam,

Chciałbym ograniczyć ilość rekordów w bazie .
Mam w kodzie już ,że jak przekroczy określoną ilość to wywala errora, ale można cały czas dodawać rekordy (rejestrować się ) .

Moja tabela wygląda tak :

Kod
CREATE TABLE `xxx` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 50 ) NOT NULL ,
`password` VARCHAR( 50 ) NOT NULL ,
`fullname` VARCHAR( 50 ) NOT NULL ,
`email` VARCHAR( 100 ) NOT NULL ,
`active` INT NOT NULL


Znalazłem w necie dwa rozwiązania,tylko nie wiem które jest ok i jak zastosować .

1. Ograniczenie rekordów poprzez max rows .

Na dev. mysql znalazłem to :
Kod
ALTER TABLE tbl_name MAX_ROWS=1000000000 AVG_ROW_LENGTH=nnn;


Czyli coś z max rows, tylko nie wiem jak to zastosować,nie wiem jak musi wyglądać tabela po dodaniu tych max rows.
Spróbowałem tak :

Kod
CREATE TABLE `xxx` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 50 ) NOT NULL ,
`password` VARCHAR( 50 ) NOT NULL ,
`fullname` VARCHAR( 50 ) NOT NULL ,
`email` VARCHAR( 100 ) NOT NULL ,
`active` INT NOT NULL
) MAX_ROWS=2


Ale nic nie ogranicza :<

Proszę o poradę w tej kwestii .

2. Ograniczenie w PHP

Kod
$db=mysql_query("SELECT count(*) as ilerekordow from tabela LIMIT 1");
$i=mysql_fetch_array($db);
$ilerekordow=$i['ilerekordow'];


Tutaj też nie wiem co zrobić, najpierw trzeba chyba byłoby zrobić counta w mysql i potem ten ^ kod by sczytywał .


Bardzo proszę o poradę .
Chciałbym zrobić tak, aby jak liczba rekordów przekroczy np. 20 to aby strona nie działała,albo po prostu nie dodawało rekordów smile.gif
nospor
No zwykly IF

if ($ilerekordow >= 20) die('Spadaj ziom');
kiepski96
W tabeli dałem już aby liczyło county .
W php dałem to :
Kod
if ($ilerekordow >= 20) die('Spadaj ziom');


Teraz co trzeba zrobić, aby zczytywało liczbę count ?

To wystarczy ?

Kod
$db=mysql_query("SELECT count(*) as ilerekordow from nazwatabeli");
nospor
No przecież już miałes kod:
$db=mysql_query("SELECT count(*) as ilerekordow from tabela LIMIT 1");
$i=mysql_fetch_array($db);
$ilerekordow=$i['ilerekordow'];

Wywal tylko te limit
kiepski96
THX,all działa
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.