Bonjour,
Je suis bloqué depuis plusieurs jours sur un script PHP, puis-je vous demander de m'aider à le résoudre SVPL.
Voici le problème :
J'ai une table "client" avec, entre autres, un champ "archive" de type "enum" avec 2 valeurs "oui" et "non".
J'ai une table "don" avec, entre autres, un champ "nomclient" qui est indexé avec le même champ de la table "client" avec une clé étrangère sur cette table.
J'ai un script qui me permet d'archiver un client lorsque nécessaire et du coup le champ "archive" passe de "non" à "oui".
Ce que je souhaite faire, c'est lorsque j'archive un client, on ne puisse plus afficher ses dons. En gros si "archive" de client est "oui" alors les dons de ce client ne s'affichent pas.
Ce n'est peut-être pas assez clair, alors voici les scripts en question :
1°) page liste des clients
2°) Page liste des dons :
2°) C'est ce bout de code qui me pose problème :
Quelle requête pour
1°) demander d'afficher les données de la tables don avec la conditon "WHERE nomagence="' . $item['nomagence'] . '"'); " qui elle fonctionne puisque le SELECT est sur la table "don"
2°) En même temps demander d'afficher le données de la table don avec la condition if ($item['archive'] = "non") puisqu'il s'agit là de la table client.
D'avance mille mercis de votre aide si vous pouvez.
Bien cordialement +++
Je suis bloqué depuis plusieurs jours sur un script PHP, puis-je vous demander de m'aider à le résoudre SVPL.
Voici le problème :
J'ai une table "client" avec, entre autres, un champ "archive" de type "enum" avec 2 valeurs "oui" et "non".
J'ai une table "don" avec, entre autres, un champ "nomclient" qui est indexé avec le même champ de la table "client" avec une clé étrangère sur cette table.
J'ai un script qui me permet d'archiver un client lorsque nécessaire et du coup le champ "archive" passe de "non" à "oui".
Ce que je souhaite faire, c'est lorsque j'archive un client, on ne puisse plus afficher ses dons. En gros si "archive" de client est "oui" alors les dons de ce client ne s'affichent pas.
Ce n'est peut-être pas assez clair, alors voici les scripts en question :
1°) page liste des clients
<?php session_start(); ?>
<?php
require_once('_nav.php');
require_once('_head.php');
require_once('../fonctions/bdd.php');
$bdd = bdd();
?>
<?php
if (!empty($_SESSION['codeagence'])) {
$codeagence = ($_SESSION['codeagence']);
$statement = $bdd->prepare("SELECT * FROM client WHERE codeagence = ?");
$statement->execute(array($codeagence));
$item = $statement->fetch();
$ClientID = $item['ClientID'];
$nomagence = $item['nomagence'];
}
if (!empty($_SESSION['codeagence'])) {
$codeagence = ($_SESSION['codeagence']);
$statement = $bdd->prepare("SELECT * FROM agence WHERE codeagence = ?");
$statement->execute(array($codeagence));
$item = $statement->fetch();
}
if (isset($_POST['supprimer'])) {
$ClientID = ($_POST['ClientID']);
$statement = $bdd->prepare("DELETE FROM client WHERE ClientID = ? ");
$statement->execute(array($ClientID));
}
if (isset($_POST['archiver'])) {
$statement = $bdd->prepare("INSERT INTO client_archive (codeagence, nomagence, numbi, prenomclient, nomclient, dateevenement, nomevenement, destination, telclient, mailclient, adresseclient, cpclient, villeclient, prenomconjoint, nomconjoint, mailconjoint, telconjoint, imgclient, message, pwdclient)
SELECT codeagence, nomagence, numbi, prenomclient, nomclient, dateevenement, nomevenement, destination, telclient, mailclient, adresseclient, cpclient, villeclient, prenomconjoint, nomconjoint, mailconjoint, telconjoint, imgclient, message, pwdclient FROM client WHERE ClientID = ?");
$statement->execute(array($ClientID));
}
if (isset($_POST['archiver'])) {
$statement = $bdd->prepare("DELETE FROM client WHERE ClientID = ?");
$statement->execute(array($ClientID));
}
?>
<div class="container-fluid">
<div class="row justify-content-center">
<div class="col-lg-12 bg-secondary text-white text-center mb-4">
<h2>Liste des clients de l'agence <strong><?php echo $nomagence ?></strong></h2>
</div>
<div class="col-auto mb-4">
<table class="table-responsive">
<tr>
<td>
<?php
echo '<form method="post" action="liste_client_archive.php" role="form">';
echo '<input type="submit" name="submit3" class="btn btn-warning" value="Liste des clients archivés">';
echo '</form>';
?>
</td>
<td>
<?php
echo '<form method="post" action="ajout_client.php" role="form">';
echo '<input type="submit" name="submit1" class="btn btn-warning" value="Ajouter un client">';
echo '</form>';
?>
</td>
<td>
<?php
echo '<form method="post" action="espace_agence.php" role="form">';
echo '<input type="submit" name="submit2" class="btn btn-warning" value="Retour vers l\'espace agence">';
echo '</form>';
?>
</td>
<td>
<?php
echo '<form method="post" action="" role="form">';
echo ' <a href="logout.php" type="text" class="btn btn-danger">Déconnexion</a> ';
echo '</form>';
?>
</td>
</tr>
</table>
</div>
<div class="col-auto">
<table class="table-responsive">
<thead>
<tr>
<th class="font-weight-normal">Prénom</th>
<th class="font-weight-normal">Nom</th>
<th class="font-weight-normal">N° BI</th>
<th class="font-weight-normal">N° mobile</th>
<th class="font-weight-normal">Email</th>
<th class="font-weight-normal">Adresse</th>
<th class="font-weight-normal">CP</th>
<th class="font-weight-normal">Ville</th>
<th class="font-weight-normal">Prénom du conjoint</th>
<th class="font-weight-normal">Nom du conjoint</th>
<th class="font-weight-normal">Modifier</th>
<th class="font-weight-normal">Supprimer</th>
</tr>
</thead>
<tbody>
<?php
$statement = $bdd->prepare('SELECT * FROM client WHERE archive = "non" AND nomagence="' . $item['nomagence'] . '"');
$statement->execute();
while ($item = $statement->fetch()) {
echo '<tr>';
echo '<td>' . ucfirst($item['prenomclient']) . '</td>';
echo '<td>' . strtoupper($item['nomclient']) . '</td>';
echo '<td>' . $item['numbi'] . '</td>';
echo '<td>' . wordwrap(($item['telclient']), 2, ' ', true) . '</td>';
echo '<td>' . $item['mailclient'] . '</td>';
echo '<td>' . $item['adresseclient'] . '</td>';
echo '<td>' . $item['cpclient'] . '</td>';
echo '<td>' . strtoupper($item['villeclient']) . '</td>';
echo '<td>' . ucfirst($item['prenomconjoint']) . '</td>';
echo '<td>' . strtoupper($item['nomconjoint']) . '</td>';
echo '<td>';
echo '<form method="post" action="update_client_profil.php" role="form">';
echo '<input id="ClientID" type="hidden" name="ClientID" value="' . $item['ClientID'] . '"> ';
echo '<input type="submit" name="submit1" class="btn btn-primary" value="Modifier">';
echo '</form>';
echo '</td>';
echo ' ';
echo '<td>';
echo '<form method="post" action="liste_client.php" role="form">';
echo '<input id="ClientID" type="hidden" name="ClientID" value="' . $item['ClientID'] . '"> ';
echo '<input type="submit" name="supprimer" class="btn btn-danger" value="Supprimer">';
echo '</form>';
echo '</td>';
echo '</tr>';
}
?>
</tbody>
</table>
</div>
</div>
</div>
<?php require_once('_footer.php'); ?>
2°) Page liste des dons :
<?php session_start(); ?>
<?php
require_once('_nav.php');
require_once('_head.php');
require_once('../fonctions/bdd.php');
$bdd = bdd();
?>
<?php
if (!empty($_SESSION['codeagence'])) {
$codeagence = ($_SESSION['codeagence']);
$statement = $bdd->prepare("SELECT * FROM agence WHERE codeagence = ?");
$statement->execute(array($codeagence));
$item = $statement->fetch();
$nomagence = $item['nomagence'];
}
if (!empty($_SESSION['codeagence'])) {
$codeagence = ($_SESSION['codeagence']);
$statement = $bdd->prepare("SELECT * FROM don WHERE codeagence = ?");
$statement->execute(array($codeagence));
$item = $statement->fetch();
}
if (!empty($_SESSION['codeagence'])) {
$codeagence = ($_SESSION['codeagence']);
$statement = $bdd->prepare("SELECT * FROM client WHERE codeagence = ?");
$statement->execute(array($codeagence));
$item = $statement->fetch();
}
if (isset($_POST['supprimer'])) {
$statement = $bdd->prepare("DELETE FROM don WHERE DonID = ? ");
$statement->execute(array($DonID));
}
?>
<div class="container-fluid">
<div class="row justify-content-center">
<div class="col-lg-12 bg-secondary text-white text-center mb-4">
<h1>Gestion des dons en cours de l'agence <strong><?php echo $nomagence ?></strong></h1>
</div>
<div class="col-auto mb-4">
<table class="table-responsive">
<tr>
<td class="text-left">
<?php
echo '<form method="post" action="liste_don_archive.php" role="form">';
echo '<input type="submit" name="submit3" class="btn btn-warning" value="Liste des dons archivés">';
echo '</form>';
?>
</td>
<td>
<?php
echo '<form method="post" action="ajout_don.php" role="form">';
echo '<input type="submit" name="submit1" class="btn btn-warning" value="Ajouter un don manuellement">';
echo '</form>';
?>
</td>
<td>
<?php
echo '<form method="post" action="espace_agence.php" role="form">';
echo '<input type="submit" name="submit3" class="btn btn-warning" value="Retour vers l\'espace agence">';
echo '</form>';
?>
</td>
<td>
<?php
echo '<form method="post" action="" role="form">';
echo ' <a href="logout.php" type="text" class="btn btn-danger">Déconnexion</a> ';
echo '</form>';
?>
</td>
</tr>
</table>
</div>
<div class="col-auto">
<table class="table-responsive">
<thead>
<tr class="bg-dark text-white">
<th class="font-weight-normal">N° du Don</th>
<th class="font-weight-normal">Date du paiement</th>
<th class="font-weight-normal">Prénom du donateur</th>
<th class="font-weight-normal">Nom du donateur</th>
<th class="font-weight-normal">Mail du donateur</th>
<th class="font-weight-normal">N° mobile du donateur</th>
<th class="font-weight-normal">Bénéficiaires(s)</th>
<th class="font-weight-normal">Montant</th>
<th class="font-weight-normal">Mode de paiement</th>
<th class="font-weight-normal text-center">Supprimer</th>
</tr>
</thead>
<tbody>
<?php
if (!empty($_SESSION['codeagence'])) {
if ($item['archive'] = "non") {
$statement = $bdd->prepare('SELECT * FROM don WHERE nomagence="' . $item['nomagence'] . '"');
$statement->execute();
while ($item = $statement->fetch()) {
echo '<tr>';
echo '<td>' . ($item['DonID']) . '</td>';
$timestamp = $item['datetransaction'];
$format = 'd/m/Y - H:m:s';
echo '<td>' . date($format, $timestamp) . '</td>';
echo '<td>' . ucfirst($item['prenomdonateur']) . '</td>';
echo '<td>' . strtoupper($item['nomdonateur']) . '</td>';
echo '<td>' . ($item['maildonateur']) . '</td>';
echo '<td>' . wordwrap(($item['teldonateur']), 2, ' ', true) . '</td>';
echo '<td>' . strtoupper($item['nomclient']) . '</td>';
echo '<td class="text-right pr-5">' . substr($item['montantdon'], 0, -2) . ' €</td>';
echo '<td>' . ($item['nompaymode']) . ' </td>';
echo '<td class="text-left">';
echo '<form method="post" action="" role="form">';
echo '<input id="DonID" type="hidden" name="DonID" value="' . $item['DonID'] . '"> ';
echo '<input type="submit" name="supprimer" class="btn btn-danger" value="Supprimer">';
echo '</form>';
echo '</td>';
echo '</tr>';
}}}
?>
</tbody>
<foot>
<tr class="bg-success">
<td colspan=5 class="text-white text-right font-weight-bold pr-5">Montant total des dons</td>
<?php
$statement = $bdd->query('SELECT SUM(montantdon) FROM don WHERE codeagence="' . $codeagence . '"');
while ($item = $statement->fetch()) {
echo '<td colspan=3 class="text-white text-right font-weight-bold pr-5">' . substr($item['SUM(montantdon)'], 0, -2) . ' €</td>';
} ?>
<td></td>
<td></td>
<td></td>
</tr>
</foot>
</table>
</div>
</div>
</div>
<?php require_once('_footer.php'); ?>
2°) C'est ce bout de code qui me pose problème :
if (!empty($_SESSION['codeagence'])) {
if ($item['archive'] = "non") {
$statement = $bdd->prepare('SELECT * FROM don WHERE nomagence="' . $item['nomagence'] . '"');
Quelle requête pour
1°) demander d'afficher les données de la tables don avec la conditon "WHERE nomagence="' . $item['nomagence'] . '"'); " qui elle fonctionne puisque le SELECT est sur la table "don"
2°) En même temps demander d'afficher le données de la table don avec la condition if ($item['archive'] = "non") puisqu'il s'agit là de la table client.
D'avance mille mercis de votre aide si vous pouvez.
Bien cordialement +++