IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Modifier le résultat d'un select


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2021
    Messages : 2
    Par défaut Modifier le résultat d'un select
    Bonjour a tous

    J'ai une base de données contenant des membres, des entreprises et des stages, et un site web avec lequel accéder.

    J'ai une page ou je dois accéder a des données, pour soit : les voir, les modifier, les supprimer et les ajouter.

    J'avais bel et bien imaginé un formulaire ou je rentre l'ID de ce que je veux avec les champs derrière pour les modifier, mais a condition de rentrer dans les zones de texte ce que je veux modifier, et je suis obligé de tout modifier car en laissant la case vide, ça renvoie une chaine vide a la place des données de base.

    Y'a t'il donc moyen, en php, d'obtenir avec mon select un tableau récupérant mes données (ça, j'ai réussi) mais ensuite, avec un clic par dessus, de les modifier directement en ayant préconstruit la requête ? Car j'ai du mal a réaliser ça

    Je vous montre ma requête select :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    <?php
    session_start();
    require("../Modeles/M_fonctions.php");
    ?>
     
    <!DOCTYPE html>
    <html lang="fr">
     
    <head>
        <meta charset="utf-8">
        <link rel="stylesheet" type="text/css" href="../../ressources/css/styletable.css">
        <title>Recherche de membres</title>
    </head>
     
    <body>
        <?php
        $db = new PDO($dbcon, $dbuser, $dbpwd);
     
        // Compte le nombre de 
        $reponse = $db->query('SELECT COUNT(*) AS total FROM personne');
        $total_lignes = $reponse->fetch()['total'];
        $limite = 5;
        $nbre_pages = ceil($total_lignes / $limite);
     
        $page = (isset($_GET['page']) and $_GET['page'] > 0) ? $_GET['page'] : 1;
        $page = (isset($_GET['page']) and $_GET['page'] > $nbre_pages) ? $nbre_pages : $page;
        $debut = ($page - 1) * $limite;
     
        $reponse = $db->prepare('SELECT
        stage.ID_Stage,
        stage.Descriptif_stage,
        stage.Note_etudiant_stage,
        stage.Duree_stage,
        stage.Base_remuneration,
        stage.Date_offre,
        stage.Type_promos,
        entreprise.Nom_entreprise,
        localisation.Pays,
        localisation.Ville
        FROM
        stage INNER JOIN
        entreprise ON stage.ID_Entreprise = entreprise.ID_Entreprise INNER JOIN
        localisation On localisation.ID_Entreprise = entreprise.ID_Entreprise
        ORDER BY ID_Stage ASC LIMIT :debut, :limite');
        $reponse->bindValue('debut', $debut, PDO::PARAM_INT);
        $reponse->bindValue('limite', $limite, PDO::PARAM_INT);
        $reponse->execute() || die('Impossible de charger la page');
        ?>
     
        <table>
            <thead>
                <tr>
                    <th>ID</th>
                    <th>Poste</th>
                    <th>Note étudiant</th>
                    <th>Durée (semaine)</th>
                    <th>Salaire (€)</th>
                    <th>Date de début</th>
                    <th>Promo visée</th>
                    <th>Entreprise</th>
                    <th>Pays</th>
                    <th>Ville</th>
                    <th>Favori<th>
                </tr>
            </thead>
            <tfoot>
                <tr>
                    <th colspan="8">
                        <?php
                        if ($page > 1) {
                        ?>
                            <a href="?page=<?php echo $page - 1; ?>">&LeftTriangle;</a>
                        <?php
                        } else {
                        ?>
                            <span class="invalide">&bemptyv;</span>
                        <?php
                        }
                        for ($i = 1; $i <= $nbre_pages; $i++) {
                            if ($i != $page) {
                                echo '<a href="?page=' . $i . '">' . $i . '</a> ';
                            } else {
                                echo '<span>' . $i . '</span> ';
                            }
                        }
                        if ($page < $nbre_pages) {
                        ?>
                            <a href="?page=<?php echo $page + 1; ?>">&RightTriangle;</a>
                        <?php
                        } else {
                        ?>
                            <span class="invalide">&bemptyv;</span>
                        <?php
                        }
                        ?>
                    </th>
                </tr>
            </tfoot>
            <tbody>
                <?php
                for ($i = 0; $i < $limite; $i++) {
                    $debut++;
                    echo '<tr>';
                    if ($donnees = $reponse->fetch()) {
                        echo '<td>' . $donnees['ID_Stage'] . '</td>';
                        echo '<td>' . $donnees['Descriptif_stage'] . '</td>';
                        echo '<td>' . $donnees['Note_etudiant_stage'] . '</td>';
                        echo '<td>' . $donnees['Duree_stage'] . '</td>';
                        echo '<td>' . $donnees['Base_remuneration'] . '</td>';
                        echo '<td>' . $donnees['Date_offre'] . '</td>';
                        echo '<td>' . $donnees['Type_promos'] . '</td>';
                        echo '<td>' . $donnees['Nom_entreprise'] . '</td>';
                        echo '<td>' . $donnees['Pays'] . '</td>';
                        echo '<td>' . $donnees['Ville'] . '</td>';
                    } else {
                        echo '<td class="cellule_vide"></td>';
                        echo '<td class="cellule_vide"></td>';
                        echo '<td class="cellule_vide"></td>';
                        echo '<td class="cellule_vide"></td>';
                        echo '<td class="cellule_vide"></td>';
                        echo '<td class="cellule_vide"></td>';
                        echo '<td class="cellule_vide"></td>';
                        echo '<td class="cellule_vide"></td>';
                        echo '<td class="cellule_vide"></td>';
                        echo '<td class="cellule_vide"></td>';
                        echo '<td class="cellule_vide"></td>';
                    }
                    echo '</tr>';
                }
                ?>
            </tbody>
        </table>
    </body>
     
    </html>

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 661
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 661
    Par défaut
    là vous nous montrez la page qui affiche la liste des stages.
    mais le souci dont vous parlez concerne la page d'édition d'un stage, non ?

  3. #3
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Citation Envoyé par atleticoporlavida Voir le message
    J'avais bel et bien imaginé un formulaire ou je rentre l'ID de ce que je veux avec les champs derrière pour les modifier,...
    Bonjour,

    C'est pourtant exactement ça.

    Ce que tu n'as pas "capté", c'est qu'à partir du moment où tu as l'ID, une simple requête SQL permet de récupérer les données pour les ré-afficher dans les input, select, textarea du formulaire de modification.
    Simple et efficace.

    Y'a t'il donc moyen, en php, ....... mais ensuite, avec un clic par dessus, de les modifier directement en ayant préconstruit la requête ?
    Ça aussi c'est possible, mais pas uniquement en PHP.
    Il faut du JavaScript + Ajax (voir contenteditable)
    Moins simple...

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2021
    Messages : 2
    Par défaut
    Mathieu, en effet mais je voulais du coup partir du résultat de mon Select pour directement modifier

    Citation Envoyé par jreaux62 Voir le message
    Bonjour,

    C'est pourtant exactement ça.

    Ce que tu n'as pas "capté", c'est qu'à partir du moment où tu as l'ID, une simple requête SQL permet de récupérer les données pour les ré-afficher dans les input, select, textarea du formulaire de modification.
    Simple et efficace.


    Ça aussi c'est possible, mais pas uniquement en PHP.
    Il faut du JavaScript + Ajax (voir contenteditable)
    Moins simple...
    Bonjour, merci de ta réponse.

    J'ai pas réussi a créer des input et compagnie une requête qui affiche directement le résultat dedans. J'avais essayé, mais je me suis dis que l'étape JS que je voulais éviter semble obligatoire, d'ou pourquoi je suis venu ici ^^

    Connais-tu un tuto plus ou moins simple qui explique comment faire ça? J'ai déja vu du JS et de l'Ajax rapidement dans mon année scolaire (je suis en école d'ingénieur) mais je suis moins a l'aise avec
    Merci beaucoup

  5. #5
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Citation Envoyé par atleticoporlavida Voir le message
    J'ai pas réussi a créer des input et compagnie une requête qui affiche directement le résultat dedans.
    Il n'y a pourtant pas de difficulté particulière sur le principe. Essaies sur des exemples basiques dans une page séparée en renseignant l'attribut value avec le résultat de ta requête. A supposé que tu sois dans le html tu peux écrire par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php if ($donnees = $reponse->fetch()) {
    ?>
            <td><input type="text" name="id_stage" value="<?= $donnees['ID_Stage']?>"></td>
            <td><input type="text" name="Descriptif_stage" value="<?= $donnees['Descriptif_stage']?>"></td>
            <td><input type="text" name="Note_etudiant_stage" value="<?= $donnees['Note_etudiant_stage']?>"></td>   
    <?php } 
    else
    {
    //...
    }
    ?>
    Citation Envoyé par atleticoporlavida Voir le message
    J'avais essayé, mais je me suis dis que l'étape JS que je voulais éviter semble obligatoire, d'ou pourquoi je suis venu ici ^^
    Peut être l'étape JS est obligatoire mais peut-être pas. Elle ne l'est pas si tu peux te contenter d'éléments de formulaires standards (input, textarea, select, bouton radio etc.). Il y a aussi les input de type hidden qui sont pratiques pour transférer des informations vers le serveur sans être affichés visiblement dans le formulaire.

    Au passage, tout le code php qui se trouve entre ta balise <body> et la balise <table> n'a rien à faire ici. Mets le plutôt en haut sous le "require" pour mieux structurer ton code.

Discussions similaires

  1. Mélange du résultat d'un select
    Par elmaxbo dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/05/2005, 13h01
  2. INSERT avec valeur connue et résultat d'un SELECT...
    Par snoop dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 27/04/2005, 08h54
  3. Formater résultat d'un select.
    Par wilaya dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/04/2005, 15h38
  4. [Sybase] résultat d'un select dans une variable
    Par stoz dans le forum Sybase
    Réponses: 2
    Dernier message: 14/09/2004, 14h28
  5. Insérer le résultat d'un SELECT
    Par zoubidaman dans le forum SQL
    Réponses: 3
    Dernier message: 16/08/2004, 16h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo