Advertisement
Guest User

Untitled

a guest
Jan 6th, 2023
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.50 KB | None | 0 0
  1. Dans ces cas là je te laisse regarder ce code et me dire ce qui ne va pas dans TON code.
  2.  
  3. ```
  4. <?php
  5.  
  6. // database/connection.php
  7.  
  8. const DB_HOST = 'localhost';
  9. const DB_NAME = 'db_series';
  10. const DB_USER = 'root';
  11. const DB_PASSWORD = 'root';
  12.  
  13. // Pas besoin de mettre un try catch ici
  14. $dbConnection = new PDO(sprintf('mysql:host=%s;dbname=%s', DB_HOST, DB_NAME), DB_USER, DB_PASSWORD);
  15. $dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  16. $dbConnection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
  17.  
  18. // form_add_series.php
  19. // Je sépare le traitement du formulaire de la vue du formulaire
  20.  
  21. $nbSeasons = $_GET['nb'] ?? null;
  22.  
  23. require __DIR__ . '/database/connection.php';
  24. ?>
  25. <!-- Je ne mets pas tous le code HTML ici -->
  26. <?php if ($nbSeasons === null): ?>
  27. <form action="form_add_series.php" method="get">
  28. <label for="nb">Nombre de saisons</label>
  29. <input type="number" name="nb" id="nb">
  30. <button type="submit">Valider</button>
  31. </form>
  32. <?php else: ?>
  33. <form action="add_series.php">
  34. <label for="name">Nom de la série</label>
  35. <input type="text" name="name" id="name">
  36. <label for="description">Description</label>
  37. <textarea name="description" id="description"></textarea>
  38. <?php for ($i = 1; $i <= $nbSeasons; $i++): ?>
  39. <p>
  40. <label for="season-<?= $i ?>">Saison <?= $i ?></label>
  41. <input type="text" name="seasons[<?= $i ?>][name]" id="season-<?= $i ?>"><br>
  42. <label for="season-<?= $i ?>">Status <?= $i ?></label>
  43. <input type="text" name="seasons[<?= $i ?>][state]" id="season-<?= $i ?>">
  44. </p>
  45. <?php endfor; ?>
  46. <button type="submit">Valider</button>
  47. </form>
  48. <?php endif; ?>
  49. <?php
  50.  
  51. // add_series.php
  52. require __DIR__ . '/database/connection.php';
  53.  
  54. if ($_SERVER['REQUEST_METHOD'] !== 'POST' || empty($_POST)) {
  55. header('Location: /', true, 302);
  56. exit();
  57. }
  58.  
  59. $name = $_POST['name'] ?? null;
  60. $description = $_POST['description'] ?? null;
  61. $seasons = $_POST['seasons'] ?? [];
  62.  
  63. $errors = [];
  64.  
  65. if ($name === null || $description === null || empty($seasons)) {
  66. $errors[] = 'Il faut remplir les champs obligatoires';
  67. }
  68.  
  69. if (count($errors) > 0) {
  70. header('Location: form_add_series.php', true, 302);
  71. exit();
  72. }
  73.  
  74. $reqSerie = $dbConnection->prepare('SELECT id FROM series WHERE name = :name');
  75. $reqSerie->execute(['name' => $name]);
  76. $serie = $reqSerie->fetch();
  77.  
  78. if ($serie === false) {
  79. $reqSerie = $dbConnection->prepare('INSERT INTO series (name, description) VALUES (:name, :description)');
  80. $reqSerie->execute(['name' => $name, 'description' => $description]);
  81. $serieId = $dbConnection->lastInsertId();
  82. } else {
  83. $serieId = $serie['id'];
  84. }
  85.  
  86. $reqSeason = $dbConnection->prepare('INSERT INTO seasons (series_id, name, state) VALUES (:series_id, :name, :state)');
  87.  
  88. foreach ($seasons as $season) {
  89. $reqSeason->execute([
  90. 'series_id' => $serieId,
  91. 'name' => $season['name'],
  92. 'state' => $season['state'],
  93. ]);
  94. }
  95. ```
  96.  
  97. Car OK je suis d'accord avec le fait qu'il faut bien commencer par une V0 mais le soucis c'est que tu n'utilise même pas les bases (ou pas bien) de php, sql, etc.
  98.  
  99. Désolé si ça va être dur mais, si tu n'es pas là pour apprendre correctement (et comprendre aussi) alors ne commence pas. *(Pour info ça m'a pris 20 minutes et encore j'ai du vérifier un truc sur les formulaires, pour faire un ajout potable)*
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement