Limiter 5 insert dans une table MySQL

Résolu/Fermé
Gilledunord Messages postés 49 Date d'inscription vendredi 11 avril 2008 Statut Membre Dernière intervention 27 mars 2013 - 21 juil. 2011 à 09:49
Gilledunord Messages postés 49 Date d'inscription vendredi 11 avril 2008 Statut Membre Dernière intervention 27 mars 2013 - 27 mars 2013 à 06:17
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 1007 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 10 mars 2015 190
21 juil. 2011 à 10:21
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 vendredi 11 avril 2008 Statut Membre Dernière intervention 27 mars 2013 2
Modifié par Gilledunord le 21/07/2011 à 11:24
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 1007 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 10 mars 2015 190
21 juil. 2011 à 11:34
Comment lances tu ta commande ? php ? mysql ?
0
Gilledunord Messages postés 49 Date d'inscription vendredi 11 avril 2008 Statut Membre Dernière intervention 27 mars 2013 2
21 juil. 2011 à 11:45
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 1007 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 10 mars 2015 190
21 juil. 2011 à 14:18
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 vendredi 11 avril 2008 Statut Membre Dernière intervention 27 mars 2013 2
21 juil. 2011 à 14:51
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 jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
Modifié par Leviathan49 le 21/07/2011 à 15:02
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 jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
21 juil. 2011 à 10:23
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