Bonjour,

J'ai un site où je présente des émissions de radio. Sur celui-ci, j'ai une page insertion_emissions.php qui me permet d'ajouter des émissions. Cette page comporte plusieurs champs reliés à la table emissions. Problème, tout fonctionne bien pour tous les champs, sauf un : credits. J'ai beau entré ce que je veux, je n'obtiens qu'un 0.
Cela est peut-être dû au fait qu'avant d'avoir des textarea, j'avais mis un input dans lequel j'entré un 'crédit'. J'ajoutais des input si besoin grâce au JS depuis un bouton sur la page...
J'ai ensuite changé ça en 'invites' puis 'sons'. Mais j'ai eu un problème avec 0 sur 'invites', j'ai donc supprimé 'invites', et problèmes sur 'sons'. J'ai donc supprimé ma bd et ai remplacé ces deux champs par 'credits', mais rien n'y fait...

Ce que je veux

Retrouver ce que j'entre dans le formulaire d'insertion dans ma page dédiée à l'affichage de ces données.

Ce que j'obtiens

Un 0 à la place de ce que j'entre.

Voici le code :

insertion_emissions.php

<?php
require_once '../../systeme/config.php';
session_start();
check_admin();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Récupérer les données du formulaire
    $titre = $_POST['titre'];
    $description = $_POST['description'];
    $langues = isset($_POST['langues']) ? implode(',', $_POST['langues']) : '';
    $duree = $_POST['duree'];
    $date_emission = $_POST['date_emission']; // Date au format AAAA-MM-JJ
    $lien = $_POST['lien'];
    $annee = $_POST['annee'];
    $traduction = isset($_POST['traduction']) ? 1 : 0;
    $new = isset($_POST['new']) ? 1 : 0;
    $credits = $_POST['credits']; // Champ crédits (textarea)

    // Récupérer le nom et prénom de l'utilisateur connecté depuis la session
    $created_user = $_SESSION['prenom'] . ' ' . $_SESSION['nom'];
    $created_datetime = date('Y-m-d H:i:s'); // Date et heure actuelle

    // Vérification et traitement du fichier audio
    if (isset($_FILES['audio']) && $_FILES['audio']['error'] == 0) {
        $audio_tmp_name = $_FILES['audio']['tmp_name'];
        $audio_name = basename($_FILES['audio']['name']); // Seulement le nom du fichier sans chemin

        // Déplacer le fichier audio dans le répertoire approprié
        $upload_dir = '../../emissions/audios/';
        $audio_path = $upload_dir . $audio_name;

        if (move_uploaded_file($audio_tmp_name, $audio_path)) {
            // Fichier déplacé avec succès
            $audio_filename = $audio_name; // On ne garde que le nom du fichier pour la base de données
        } else {
            die("Erreur lors du téléchargement du fichier audio.");
        }
    } else {
        $audio_filename = null; // Si pas d'audio, laisser null ou gérer différemment
    }

    // Préparer la requête d'insertion dans la base de données
    $query = "INSERT INTO emissions (titre, description, langues, duree, date_emission, lien, audio, annee, traduction, new, credits, created_user, created_datetime) 
              VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

    $stmt = $conn->prepare($query);
    $stmt->bind_param(
        'ssssssssisiss',
        $titre,
        $description,
        $langues,
        $duree,
        $date_emission,
        $lien,
        $audio_filename, // Nom du fichier audio
        $annee,
        $traduction,
        $new,
        $credits,
        $created_user,
        $created_datetime
    );

    if ($stmt->execute()) {
        echo "Émission ajoutée avec succès.";
    } else {
        echo "Erreur lors de l'insertion : " . $stmt->error;
    }

    $stmt->close();
    $conn->close();
}
?>
... début de page HTML ...
<form action="insertion_emissions.php" method="post" enctype="multipart/form-data">
    <label for="titre">Titre :</label>
    <input type="text" name="titre" id="titre" required><br>
... contenu du formulaire ...
    <label for="credits">Crédits :</label>
    <textarea name="credits" id="credits" placeholder="Liste des crédits associés à cette émission"></textarea><br>

    <button type="submit">Ajouter l'émission</button>
</form>

emissions.php?annee=21-22

<?php
include_once '../systeme/config.php';

// Get the year from the URL, default to the current year if not set
$annee = isset($_GET['annee']) ? $_GET['annee'] : '24-25'; 

// Fetch emissions from the database for the specific year
$query = "SELECT * FROM emissions WHERE annee = ? ORDER BY date_emission DESC"; // Modifier la requête avec 'date_emission'
$stmt = $conn->prepare($query);
$stmt->bind_param('s', $annee);  // 's' for string because year is stored as '21-22', etc.
$stmt->execute();
$results = $stmt->get_result();

?>

... autre contenu de la page ...

<div class="container">
    <?php while ($row = $results->fetch_assoc()) :
        $duree = substr($row['duree'], 0, 5); // Format duration as mm:ss
        $date_formatee = date('d/m/Y', strtotime($row['date_emission'])); // Format date to French style (d/m/Y)
        $langues = explode(',', $row['langues']);
    ?>

... autre contenu de la page ...

            <!-- Modal -->

            <div id="modal<?php echo ($row['id']); ?>" class="modal">
                <div class="modal-content">
                    <span class="close" data-modal="modal<?php echo ($row['id']); ?>">&times;</span>

                    <div class="box-tags">
                        <div class="duration-tag">
                            <?php echo htmlspecialchars($duree) ?> min
                        </div>
                        <div class="traduction-tag">
                            <?php if ($row['traduction'] == 1): ?>
                                <div class="traduction-tag-span">Traduction</div>
                            <?php endif; ?>
                        </div>
                        <div class="new-tag">
                            <?php if ($row['new'] == 1): ?>
                                <div class="new-tag-span">New</div>
                            <?php endif; ?>
                        </div>
                    </div>
                                    <br>
                    <div class="container-modal">
                        <div class="box-modal">
                            <h2 class="title-modal"><?php echo htmlspecialchars($row['titre']); ?></h2>
                            <br>
                            <div class="audio-box">
                                <audio class="audio-modal" controls src="audios/<?php echo htmlspecialchars($row['audio']);?>"></audio>
                                <a class="telecharger-modal" download="emission-lrs-<?php echo $date_formatee;?>" href="audios/<?php echo htmlspecialchars($row['audio']);?>">Télécharger l'émission</a>
                            </div>
                            <p class="description-modal"><?php echo htmlspecialchars($row['description']); ?></p>
                        </div>
                        <div class="box-modal">
                            <div class="publication-modal">Publiée le <?php echo $date_formatee; ?></div>
                            <div class="languages-modal">
                                <?php foreach ($langues as $langue) : ?>
                                    <div class="languages-flex-modal"><img class="drapeau-modal" src="../img/<?php echo htmlspecialchars($langue); ?>.png" alt="<?php echo htmlspecialchars($langue); ?>"><?php echo htmlspecialchars($langue); ?></div>
                                <?php endforeach; ?>
                            </div>

                        </div>
                    </div>
                </div>
            </div>

            <!-- FIN MODAL -->
        </div>
    <?php endwhile; ?>
</div>
</main>
<?php include('../includes/footer.php'); ?>
</body>
<script src="../js/modal-emission.js"></script>
</html>

<?php
$stmt->close();
$conn->close();
?>

Si jamais vous voulez voir à quoi cela ressemble en ligne : Emissions 2021-2022 - Test en ligne

Aucune réponse