IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Limiter la saisie dans une table


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut [SQL] Limiter la saisie dans une table
    Bonjour à tous,

    Je me posais juste une question est ce que je peux limiter le nombre de saisie dans une table.

    Voila j'ai crée un petit formulaire qui permet à plusieurs d'afficher des info directementsdans la banière du site. Chaque saisie est enregistré dans une base puis affiché sur le site. Pour eviter la pagaille je veux limiter ces infos à trois seulement.

    Je peux faire en sorte que seul trois saisie soit possible ?

    dolphinette

  2. #2
    Membre averti
    Avatar de Strab
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 338
    Points : 330
    Points
    330
    Par défaut
    Je ne connais pas de contrainte d'intégrité sur le nombre d'enregistrement d'une table en SQL.

    Mais ce que tu peux faire, c'est demander à la base le nombre d'enregistrement de la table lorsque quelqu'un fait une saisie, et la refuser si ce nombre est égal à trois.

    J'ai bien compris ce que tu veux faire ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    Salut

    Oui c'est bien cela que je veux faire.

    Ma base contient une table info site et celle-ci deux champs

    un numlogin avec auto incrémentation
    et un champs contenu.

    dolphi

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    Bonjour

    Je reviens vers vous car je ne sais toujours pas comment limiter le nombre d'enregistrement dans ma table.

    J'ai créé une table pour afficher des informations dans le bandeau du site au travers d'une interface administrateur.
    L'administrateur ne doit pas pouvoir saisir plus de trois info dans la base.

    Merci pour votre aide

    dolphi

  5. #5
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    bien quand le formulaire est passé, tu fais une requete sur la base en comptant le nombre de champs concerné par l'utilisateur
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $sql = "SELECT numlogin FROM `info site` WHERE numlogin = ".$numlogin;
    $res=mysql_query($sql);
    if(!$res) die ("erreur n°".mysql_errno().":".mysql_error());
    $nb_enreg = mysql_num_rows($res);
    if($nb_enreg <= 3) {
       // enregistrement 
    }

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    Salut ,

    J'ai intégré ton code dans ce que j'avais déjà écrit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <?php
     
     $host = "#";
     $user = "#";
     $pass = "#";
     $bdd = "#";
     
     // connection base de données
     @mysql_connect($host, $user, $pass) or die ("Impossible de se connecter à la base de donnée");
     
     //selection de la base
     @mysql_select_db($bdd) or die ("Impossible de se connecter à la base");
     
     // contrôle des enregistrements 
     $sql = "SELECT numlogin FROM `info site` WHERE numlogin = ".$numlogin; 
     $res=mysql_query($sql); 
     if(!$res) die ("erreur n°".mysql_errno().":".mysql_error()); 
     $nb_enreg = mysql_num_rows($res); 
     if($nb_enreg <= 3) { 
       // enregistrement 
     }
     
     
     // Insertion de l'info
     $sql=mysql_query("INSERT INTO infosite VALUES ('' , '$contenu' )") or die ("Erreur dans la requête ".$sql."<br />".mysql_error());
     
     header("location: confirmationcreation.php");
    ?>
    Mais j'ai une erreur SQL n°1064 You have an error in your SQL syntax near " at line 1.

    La ligne 1 c'est <?php

    dolphi

  7. #7
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    oui je crois que l'erreur est tout a fait normal, car la variable $numlogin n'existe pas.

    pourquoi tu enregistres le premier champs en vide dans ton insert ? c'est pas l'identifiant de ton administrateur normalement ( numlogin ) ?

    quand je mets : $numlogin dans mon bloc de code, cela suppose que cette variable contienne le numero identifiant l'administrateur que tu as recueilli lors de son authentification ... et dans ce cas je le compare a celui de la base

    [EDIT]
    oups, le champs numlogin porte mal son nom on dirait, je viens de voir qu'il est incrémental, donc ce n'est pas la référence de l'administrateur courant.
    il faut donc que tu crées un champs supplémentaire dans la table ayant pour enregistrement le numéro identifiant l'administrateur. la variable $numlogin devra correspondre a cet identifiant.
    puis le nom de la table n'est ( a priori ) pas bon, dans ton message précédent tu nous dit "info site" et dans ton code je vois "infosite" donc modifies le ;-)

  8. #8
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par dolphi
    La ligne 1 c'est <?php
    non c'est une erreur de MySQL donc c'est la ligne 1 de ta requête
    affiche ta requête qui se trouve dans $sql pour voir le problème

Discussions similaires

  1. [SQL] Bloquer l'enregistrement dans une table pendant quelques secondes
    Par syl2042 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/09/2007, 10h19
  2. [SQL] Insérer des données dans une table
    Par wonga dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 01/08/2007, 12h00
  3. Réponses: 1
    Dernier message: 12/04/2007, 17h08
  4. [pl-sql] Recherche de doublons dans une table
    Par tommey dans le forum Oracle
    Réponses: 1
    Dernier message: 08/11/2006, 22h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo