Limiter 5 insert dans une table MySQL

Résolu
Gilledunord Messages postés 52 Statut Membre -  
Gilledunord Messages postés 52 Statut Membre -
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



--
Aime tout le monde et tout le monde t'aimeras.
GilleduNord site : fouzitou.com/

3 réponses

  1. thevinou Messages postés 1130 Statut Membre 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
  2. Gilledunord Messages postés 52 Statut Membre 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
    1. thevinou Messages postés 1130 Statut Membre 190
       
      Comment lances tu ta commande ? php ? mysql ?
      0
    2. Gilledunord Messages postés 52 Statut Membre 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
    3. thevinou Messages postés 1130 Statut Membre 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
    4. Gilledunord Messages postés 52 Statut Membre 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
    5. Leviathan49 Messages postés 267 Statut Membre 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
  3. Leviathan49 Messages postés 267 Statut Membre 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