Bonjour,
me voilà bloquer depuis plusieurs jours sur comment bloquer ma table à partir de N enregistrement ?
En effet j'ai une table inscription dans ma base mais j'aimerais le bloquer à partir 50 enregistrements par exemple. Donc il n'y aura plus d'inscription à partir de 50 enregistrements.
Le soucis c'est que je ne vois pas du tout par où commencer ? que dois je faire ?
J'ai vu sur le net les histoires de lock read/write table , ou encore de trigger ?
Si seulement ou vous pouvez m'aider ou tout simplement me donner une piste ? Sachant que je ne veux pas juste qu'on puisse insérer dans la base à partir de 50 enregistrements.
Salut,
Oui, tu peux utiliser un trigger (il faut tester je ne suis pas sûr de moi ^^) :
delimiter $$
CREATE TRIGGER registerInsert
BEFORE INSERT ON <ici le nom de ta table>
BEGIN
IF (SELECT COUNT(*) FROM <ici le nom de ta table>) >= 50 THEN
-- ce que tu souhaites faire s'il y a plus de 50 enregistrements
END if;
END$$
delimiter ;
Merci betaWeb,
alors voici mon code , mais il ne fonctionne pas, je ne sais pas si c'est parce que j'ai le trigger au niveau du php.
$req = 'SELECT COUNT(*) AS nbLignes FROM maTable' OR die(mysqli_error());
$triggerBeginInsert = ' delimiter $$
CREATE TRIGGER registerInsert
BEFORE INSERT ON maTable
BEGIN
IF ("'.$req.'") >= 50 THEN
"'.$reponse = mysqli_query($req);.'"
"'.$row = mysqli_fetch_assoc($reponse);.'"
"'.$result = $row['nbLignes'];.'"
"'.echo json_encode($result, JSON_NUMERIC_CHECK);.'"
END if;
END$$
delimiter ;';
mysqli_query($triggerBeginInsert);