Limiter 5 insert dans une table MySQL

Résolu
Gilledunord Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   -  
Gilledunord Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Est-ce qu'il existe une commande pour limiter 5 "insert" dans une table MySQL. (ne pas dépasser 5 ajouts)

Bonne commande mais qui permet plusieurs ajouts de données :
mysql_query("INSERT Into coeur VALUES ('','$titrecoeur','$fichiercoeur' ) ");

J'ai essayé ça pour limité à 5 ajouts mais plus rien ne marche :
mysql_query("INSERT Into coeur VALUES ('','$titrecoeur','$fichiercoeur', WHERE 'id'=%u LIMIT 5) ");
ou
mysql_query("INSERT Into coeur VALUES ('','$titrecoeur','$fichiercoeur' ) WHERE 'titrecoeur'=%u LIMIT 5 ");

Merci pour votre aide



A voir également:

3 réponses

thevinou Messages postés 1008 Date d'inscription   Statut Membre Dernière intervention   190
 
En SQL :

CREATE PROCEDURE dowhile()
BEGIN
DECLARE v1 INT DEFAULT 5;

WHILE v1 > 0 DO
INSERT Into coeur VALUES ('','$titrecoeur','$fichiercoeur' )
SET v1 = v1 - 1;
END WHILE;
END

Si tu lances ta commande par du PHP :

for(i=0;i<5;i++)
{
mysql_query("INSERT Into coeur VALUES ('','$titrecoeur','$fichiercoeur' ) ");
}
0
Gilledunord Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   2
 
thevinou

J'ai remplacé ma commande :
mysql_query("INSERT Into coeur VALUES ('','$titrecoeur','$fichiercoeur' ) ");
par : (copier/coller)
for(i=0;i<5;i++)
{
mysql_query("INSERT Into coeur VALUES ('','$titrecoeur','$fichiercoeur' ) ");
}
mais j'ai une eurreur au niveau : for(i=0;i<5;i++)

idem pour le 1er code que tu donne, (copier/coller)
je ne sais pas ce qu'il manque c'est en erreur...
-----------------------------
Leviathan49
Le WERE ne fonctionne pas

Aime tout le monde et tout le monde t'aimeras.
GilleduNord site : fouzitou.com/
0
thevinou Messages postés 1008 Date d'inscription   Statut Membre Dernière intervention   190
 
Comment lances tu ta commande ? php ? mysql ?
0
Gilledunord Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   2
 
Depuis un formulaire vers le fichier "ajout.php"
qui contient le "insert"
mysql_query("INSERT Into coeur VALUES ('','$titrecoeur','$fichiercoeur' ) ");
ça marche mais je voudrais que si la table a déjà 5 colonnes alors de ne pas pouvoir en mettre plus.
0
thevinou Messages postés 1008 Date d'inscription   Statut Membre Dernière intervention   190
 
Je ne comprend pas trop; si la table à déjà 5 entrée, tu n'en ajoutes pas ? Est ce que tu vérifies le nombre d'entrée et tu ajoutes ce qui manque ou tu ajoute que 5 entrées dans la table, même si celle ci contient déjà x entrées ?
0
Gilledunord Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   2
 
Je pense que je m'explique mal, désolé.
Voilà ce que je voudrais faire :
J'essaye de faire une page d'accueil (boutique commerce) qui ne peut contenir que 5 fiches des nouveautés.
Mais si j'insert plus de 5 fiches dans la base (table MySQL), dans la partie réservé à ma page d'accueil, les fiches dépasse du cadre réservé, donc je voudrais faire un système qui m'empêche de mettre plus de 5 fiches (articles) dans la table réservé à cet effet.
C'est-à-dire que si la table contient 5 articles (ou fiches) un script interdit d'en mettre plus, d'où la limite a 5 fiches.

Je pense que par le départ je dois savoir combien de colonnes contient ma table et de-là empêcher le rajout si le nombre 5 est atteint.

J'ai essayé ça mais ça ne marche pas :
$req = mysql_query("SELECT * FROM coeur ") or die ("erreur requête coeur");
$resultat = mysql_fetch_array ($req);
if ($resultat['titrecoeur'] > '5')
{ echo ''; }

if ($resultat['titrecoeur'] < '5')
{
mysql_query("INSERT Into coeur VALUES ('','$titrecoeur','$fichiercoeur' ) ");
}
0
Leviathan49 Messages postés 257 Date d'inscription   Statut Membre Dernière intervention   70
 
Ce que fait ton code c'est tester si le titrecoeur de la première ligne de ta base est supérieur ou inférieur à 5. Ce qui n'est apparement pas ce que tu veux. Essayes ceci :
$req = mysql_query("SELECT COUNT(*) FROM coeur ") or die ("erreur requête coeur");  
$resultat = mysql_result($req,0);  
if ($resultat > 5)  
{ echo 'superieur à 5'; }  

if ($resultat < 5)  
{  
mysql_query("INSERT Into coeur VALUES ('','$titrecoeur','$fichiercoeur' ) ");  
}
0
Leviathan49 Messages postés 257 Date d'inscription   Statut Membre Dernière intervention   70
 
LIMIT n'est valable que pour un select il me semble. A voir.
Sinon je trouve ton where bizarre essaye :
INSERT Into coeur VALUES ('','$titrecoeur','$fichiercoeur') WHERE 'id' like '%u' LIMIT 5.
Sinon, si ça ne marche pas, fait un SELECT * from coeur WHERE 'id' like '%u' avant et vérifie que tu obtiens moins de 5 lignes en réponse.
-1