Problème de génération des code PIN

Messages postés
3
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
6 juin 2019
-
Bonjour chers tous !

Juste, j'étais enrain decrire un code en PHP consitant à gnérer automatiquement des données dans la base de données MySQL via PHPMYADMIN, le souci est qu'il génère soit 130 lignes de code à la fois alors que j'en ai besoin d'un seul.

Toute suggestion et solution est la bienvenue.

Merci d'avance !!


voilà bien l'écriture de mon code
**Modifié par la modération pour une lecture plus facile du code, à l'avenir utilisez les balises, VOIR CETTE PAGE

<?php include('includes/header.php'); ?>

<?php include('includes/menu.php');
$product_price = 300;
if (isset($_POST['send'])) {
 $userid = $_POST['userid'];
 $amount = $_POST['amount'];
 $id = $_POST['id'];
 $no_of_pin = $amount/$product_price;
 $i = 1;
 while ($i<=$no_of_pin) {
     $new_pin = pin_gen();
     $st = $db->prepare("INSERT INTO pin_list(`userid`,`pin`) VALUES(?,?)");
     $st->execute(array($userid, $new_pin));
     $i++;
 }
 //Mise à jour du PIN
    $updateQuery = "UPDATE pin_request SET status='close' WHERE id ='$id' LIMIT 1";
    $stmt = $db->prepare($updateQuery);
    
    if ($stmt->execute()) {
       $ot = 'PIN envoyé avec succès';
    }else{
     $ot = "<font color='red'>*Erreur lors de l'envoie du PIN</font>";
    }
}

function pin_gen(){
 global $db;
 $gen_pin = rand(100000,999999);
 $query = "SELECT * FROM pin_list WHERE pin ='$gen_pin'";
 $stmt = $db->prepare($query);
 $stmt->execute();
 if ($stmt->rowCount() > 0) {
  pin_gen();
 }else{
  return $gen_pin;
 }
}


?>
<div class="container-fluid">
 <h4>Liste requêtes des PIN</h4>
 <div class="row">
  <div class="col-md-1"></div>
  <div class="col-md-10">
   <table class="table table-bordered ">
     <tr>
                    <th>S.No</th>
                    <th>Utilisateur ID</th>
                    <th>Montant</th>
                    <th>Date</th>
                    <th>Envoyer</th>
                </tr>
                    <?php 
                        $query = "SELECT * FROM pin_request WHERE status = 'open' ";
                        $stmt = $db->prepare($query);
                        $stmt->execute();
                        if ($stmt->rowCount() > 0) {
                            foreach ($stmt->fetchAll() as $row) {
                                echo "<tr><td>{$row['id']}</td>";
                                echo "<td>{$row['email']}</td>";
                                echo "<td>{$row['amount']}</td>";
                                echo "<td>{$row['date']}</td>";
                                echo "<form method='post'>
                                <input type='hidden' name='userid' value='{$row['email']}'>
                                <input type='hidden' name='amount' value='{$row['amount']}'>
                                <input type='hidden' name='id' value='{$row['id']}'>
                                <td><input type='submit' value='Send' name='send' class='btn btn-purple'></td></form>";
                            }
                        }else{ ?>
                                <td colspan="6">You havent any pin request</td>
                        <?php } ?>
   </table>
  </div>
 </div>
 <p class="text-muted"><?php echo (isset($ot))? $ot : ''; ?></p>
</div>

<?php include 'includes/footer.php'; ?>
Afficher la suite 

1 réponse

Messages postés
26489
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 octobre 2019
1825
0
Merci
Bonjour,

Je n'ai pas vraiment compris ta question...
mais déjà .. à quoi sert
while ($i<=$no_of_pin) {
     $new_pin = pin_gen();
     $st = $db->prepare("INSERT INTO pin_list(`userid`,`pin`) VALUES(?,?)");
     $st->execute(array($userid, $new_pin));
     $i++;
 }

Commenter la réponse de jordane45