Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/08/2005, 18h52   #1
Invité de passage
 
Inscription : août 2005
Messages : 34
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 34
Points : 0
Points : 0
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
dolphi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2005, 19h49   #2
Membre éclairé
 
Avatar de Strab
 
Inscription : mai 2004
Messages : 338
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2004
Messages : 338
Points : 313
Points : 313
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 ?
Strab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2005, 19h54   #3
Invité de passage
 
Inscription : août 2005
Messages : 34
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 34
Points : 0
Points : 0
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
dolphi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2005, 09h17   #4
Invité de passage
 
Inscription : août 2005
Messages : 34
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 34
Points : 0
Points : 0
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
dolphi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2005, 10h26   #5
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

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

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
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 :
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 
}
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2005, 11h24   #6
Invité de passage
 
Inscription : août 2005
Messages : 34
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 34
Points : 0
Points : 0
Salut ,

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

Code :
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
dolphi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2005, 11h37   #7
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

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

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
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 ;-)
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2005, 11h43   #8
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
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
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h03.


 
 
 
 
Partenaires

Hébergement Web