Décompte en php
tiplouf2
Messages postés
821
Statut
Membre
-
tiplouf2 Messages postés 821 Statut Membre -
tiplouf2 Messages postés 821 Statut Membre -
Bonjour,
Voilà je fait un site web, et c'est un site de formation et donc sur la page formation on cherche celle que l'on veut et on s'inscrit et enfaîte dans la description de la formation nous avons le nombre de place restante et a chaque inscription le nombre de place restante doit diminuer de 1 en sachant que le nombre de place est dans une base de donné comment faire ?
Merci de vos réponse bonne soirée.
Voilà je fait un site web, et c'est un site de formation et donc sur la page formation on cherche celle que l'on veut et on s'inscrit et enfaîte dans la description de la formation nous avons le nombre de place restante et a chaque inscription le nombre de place restante doit diminuer de 1 en sachant que le nombre de place est dans une base de donné comment faire ?
Merci de vos réponse bonne soirée.
A voir également:
- Décompte en php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Retour à la ligne php ✓ - Forum PHP
- Alert php - Forum PHP
4 réponses
Bonjour,
Tout d'abord, il faut se poser la question : Quel langage sera le plus efficace ?
En effet, si vous vous attendez à ce que le nombre de places descende rapidement (Disons dans l'heure), il vaut mieux opter pour une structure en PHP couplé à du Javascript.
Sinon, le PHP fera l'affaire tout seul.
Il suffira donc de compter le nombres d'inscrits dans la table de données des inscrits. Ensuite, ce nombre sera soustrait au nombre de places totales disponibles. Ce résultat sera affiché sur le site.
La requête SQL sera la suivante (Il faut l'adapter bien sûr) :
Ici j'utilise PDO mais le principe est le même avec autre chose.
Ensuite :
Musicalement,
DJ Fire-Bl@ck.
Tout d'abord, il faut se poser la question : Quel langage sera le plus efficace ?
En effet, si vous vous attendez à ce que le nombre de places descende rapidement (Disons dans l'heure), il vaut mieux opter pour une structure en PHP couplé à du Javascript.
Sinon, le PHP fera l'affaire tout seul.
Il suffira donc de compter le nombres d'inscrits dans la table de données des inscrits. Ensuite, ce nombre sera soustrait au nombre de places totales disponibles. Ce résultat sera affiché sur le site.
La requête SQL sera la suivante (Il faut l'adapter bien sûr) :
Ici j'utilise PDO mais le principe est le même avec autre chose.
$sql = "SELECT count(*) FROM 'table_inscrits'";
$result = $db->prepare($sql);
$result->execute();
$nombre_inscrits = $result->fetchColumn();
Ensuite :
$places_totales = 28;</code>
$places_restantes = $places_totales - $nombre_inscrits;
echo "Il reste ".$places_restantes." places.";
Musicalement,
DJ Fire-Bl@ck.
Pour le nombre de place restante c'est déjà rentré dans la base de donné si vous voulez l'admin du site peu ajouter une formation donc y met le titre sa description ensuite le prix la date et le nombre de place qu'il y as ensuite ce formulaire est envoyé a la base de donnée la base de donné enregistre toute les données et les renvois sur la page "formation" du site et les place en fonction du css ensuite ce que je voudrais faire c'est par rapport a la base de données mais cela ce ferais automatiquement après l'enregistrement de l'utilisateur.
l'inscription ce passe comme sa :l'utilisateur est sur la page formation y choisit sa formation y clique sur le bouton s'inscrire y remplis le formulaire et et une fois le formulaire remplis y clique sur le bouton ok et a ce moment la les places restante descende de un donc comment faire ceci et ou y mettre le code php dans une nouvelle page dans la même page ou pas ? merci et j'espère que vous avez compris mon descriptif ..
l'inscription ce passe comme sa :l'utilisateur est sur la page formation y choisit sa formation y clique sur le bouton s'inscrire y remplis le formulaire et et une fois le formulaire remplis y clique sur le bouton ok et a ce moment la les places restante descende de un donc comment faire ceci et ou y mettre le code php dans une nouvelle page dans la même page ou pas ? merci et j'espère que vous avez compris mon descriptif ..
Oui j'ai compris.
Donc du côté de la base de données on devrait retrouver 2 tables :
Une qui contiendra les informations de chaque formation [ ID (Auto - Int), Titre (Varchar), Description (Text), Prix (Decimal), Date (Timestamp), Places (Int) ]
Une qui contiendra les données des inscrits
[ ID (Auto - Int), ID_Formation (Int), Prenom (Varchar), Nom (Varchar), Adresse (Texte), Etc ]
Du coup il y aura un lien entre la table des inscrits et la table formation (En gras)
A toi de renseigner correctement le champ ID_Formation lorsque tu enregistres un inscrit.
(Je crois que je m'écarte un peu là)
Donc ce que tu veux c'est que le nombre change directement pour l'utilisateur qui vient de s'inscrire ?
Dans ce cas là, il faut envoyer le formulaire sur la même page où il se trouve et tu pourras afficher la mise à jour, on le fait avec $_SERVER['PHP_SELF'] sur le formulaire exemple :
Il faut faire le traitement de la demande SQL avant l'affichage du code html.
Comme ça ensuite, si tu veux afficher le nombre de places tu fais que j'ai dit dans mon message précédent ça donnera :
Bien sûr, celà signifiera aussi que le gars sera compté comme inscrit sans même avoir besoin de faire valider son paiement ... je te laisse adapter tout ça ;)
Musicalement,
DJ Fire-Bl@ck.
Donc du côté de la base de données on devrait retrouver 2 tables :
Une qui contiendra les informations de chaque formation [ ID (Auto - Int), Titre (Varchar), Description (Text), Prix (Decimal), Date (Timestamp), Places (Int) ]
Une qui contiendra les données des inscrits
[ ID (Auto - Int), ID_Formation (Int), Prenom (Varchar), Nom (Varchar), Adresse (Texte), Etc ]
Du coup il y aura un lien entre la table des inscrits et la table formation (En gras)
A toi de renseigner correctement le champ ID_Formation lorsque tu enregistres un inscrit.
(Je crois que je m'écarte un peu là)
Donc ce que tu veux c'est que le nombre change directement pour l'utilisateur qui vient de s'inscrire ?
Dans ce cas là, il faut envoyer le formulaire sur la même page où il se trouve et tu pourras afficher la mise à jour, on le fait avec $_SERVER['PHP_SELF'] sur le formulaire exemple :
<form name="form1" id="mainForm" method="post"enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'];?>">
Il faut faire le traitement de la demande SQL avant l'affichage du code html.
Comme ça ensuite, si tu veux afficher le nombre de places tu fais que j'ai dit dans mon message précédent ça donnera :
<?php
function getNewBddPtr()
{
try
{
$bdd = new PDO('mysql:host=localhost;dbname=NOM_DE_LA_BASE', 'UTILISATEUR', 'MOT_DE_PASSE');
}
catch(PDOException $e)
{
exit('Connexion échouée : '.$e->getMessage());
}
return $bdd;
}
// Traitement, à partir de là il faut déjà connaître l'ID de la formation pour pouvoir l'insérer dans la table
$id_formation_sur_cette_page = 4;
$bdd = getNewBddAccessor();
$insert = $bdd->prepare("INSERT INTO inscrits (ID_Formation, Prenom, Nom, etc) VALUES (?, ?, ?, etc)");
$insert->execute(array($id_formation_sur_cette_page, $prenom, $nom, etc));
$insert->closeCursor();
?>
<html>
...
<?php
// Affichage
$bdd = getNewBddAccessor();
$count = $bdd->prepare("SELECT COUNT(*) AS places_prises FROM inscrits WHERE ID_Formation LIKE ?");
$count->execute(array($id_formation_sur_cette_page));
$f = $rap->fetch()
$places_prises = $f["places_prises"];
$count->closeCursor();
$bdd = getNewBddAccessor();
$count = $bdd->prepare("SELECT places FROM formations WHERE ID LIKE ?");
$count->execute(array($id_formation_sur_cette_page));
$f = $rap->fetch()
$places_totales = $f["places"];
$count->closeCursor();
$places_restantes = $places_totales - $places_prises;
echo "Il reste maintenant ".$places_restantes." places sur cette formation.";
// avec le reste
?>
Bien sûr, celà signifiera aussi que le gars sera compté comme inscrit sans même avoir besoin de faire valider son paiement ... je te laisse adapter tout ça ;)
Musicalement,
DJ Fire-Bl@ck.