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 :

Erreur inconnue, base de donnée INSERT avec POST [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 299
    Par défaut Erreur inconnue, base de donnée INSERT avec POST
    Salut,
    j'ai un fait code pour pouvoir mettre un rang au commentaire mais quand je clique sur un des boutons radio (le "bien" pa exemple) puis sur "valider", ca charge et puis ya aucun changement enfait... dans ma BDD le commentaire reste avec rang="1". Aidez moi svp
    Code : 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
     
    [connexion à la BDD]
    if(!isset($_SESSION["user"])||!isset($_SESSION['tpmsg'])){
        die('Erreur');
        }
    $tpmsg = $_SESSION["tpmsg"];
    if($_SESSION["user"]=='admin'){
        $choixrang='<form method="POST" action="/commentaires.php">
    <input type="radio" name="rangg" value="0">Mal
    <input type="radio" name="rangg" value="1">Normal
    <input type="radio" name="rangg" value="2">Bien
    <input type="hidden" name="id" value="\'.$msg["$id"].\'">
    <input type="submit" name="subrang" value="Valider">
    </form>';
     
        if(isset($_POST['subrang'])){
    $id = $_POST['id'];
    $rangg = $_POST['rangg'];
    $resultrg = $pdo->prepare('UPDATE commentaires SET rang=:rangg WHERE id=:id');
     $resultrg->execute(array(
            ':rangg' => $rangg,
            ':id' => $id
            ));
        }
     
    $reqmsg = $pdo->query('SELECT auteur, date, contenu, rang FROM commentaires WHERE tp='.$_SESSION["tpmsg"].' ORDER BY date');
     
    while ($msg = $reqmsg->fetch()) {
        if($msg['rang']==2){
        $bgcolormsg = 'rgba(0, 255, 0, 0.3)';
        }
        else if($msg['rang']==0){
        $bgcolormsg = 'rgba(255, 0, 0, 0.3)';
        }
     
    echo '
    <center><table style="border-radius:10px;border:1px solid black;width:80%;border-bottom:0px!important;">
    <tr style="border:1px solid black;border-bottom:0px!important;">
    <td style="border:0px solid black;text-align:left;border-right:0px;background-color: '.$bgcolormsg.';padding:5px;">'.$msg["auteur"].', le '.$msg["date"].'</td>
    <td style="border:0px solid black;text-align:right;border-left:0px;background-color: '.$bgcolormsg.';padding:5px;">'.$choixrang.'</td>
    </tr>
    </table>
    <table style="border-radius:10px;border:1px solid black;width:80%;border-top:0px!important;">
    <tr style="border:1px solid black;border-bottom:0px!important;">
    <td>'.$msg["contenu"].'</td>
    </tr>
    </table></center>
    ';
    }
    PS : comment faire un double "ORDER BY" ? Je veux ordonner par date et rang, les mieux en haut (avec récent en haut) et ensuite les moins bien etc (toujours avec récents en haut).


    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo '
    ...
    <input type="hidden" name="id" value="' . $msg["$id"] . '">
    ...
    ';
    Et
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    "...ORDER BY date DESC, rang ASC"

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 299
    Par défaut
    Merci,
    J'ai écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="id" value="\'.$msg["$id"].\'">
    car c'est dans une variable donc je pensais que ca donnerait ce que vous avez écrit dans l'echo... mais là je veux que ce soit dans une variable... comment faire svp ? merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    C'est quoi, ça : $msg["$id"] ?
    • $msg['id'] ?
    • $msg[$id] ?

    D'où ça vient ?
    A toi de nous expliquer.

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ligne 12 tu utilises $id alors qu'elle est défini plus bas ligne 17 et $msg qui est défini ligne 28.

    Il est donc difficile de comprendre la logique de ton code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 299
    Par défaut
    Merci, en effet j'ai fait une erreur avec msg id,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $reqmsg = $pdo->query('SELECT auteur, date, contenu, rang, id FROM commentaires WHERE tp='.$_SESSION["tpmsg"].' ORDER BY date');
    while ($msg = $reqmsg->fetch()) {
    EDIT:
    Bon ok... désolé... je mets tout mon code :/

    Code : 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
    <?php session_start();
    if(!isset($_SESSION["user"])||!isset($_SESSION['tpmsg'])){
        die('Erreur');
        }
    $tpmsg = $_SESSION["tpmsg"];
    include 'bdd.php';
    if($_SESSION["user"]=='admin'){
    $choixrang='<form method="POST" action="/commentaires.php">
    <input type="radio" name="rangg" value="0">Mal
    <input type="radio" name="rangg" value="1">Normal
    <input type="radio" name="rangg" value="2">Bien
    <input type="hidden" name="id" value="\'.$msg["id"].\'">
    <input type="submit" name="subrang" value="Valider">
    </form>';
        if(isset($_POST['subrang'])){
        $id = $_POST['id'];
        $rangg = $_POST['rangg'];
        $resultrg = $pdo->prepare('UPDATE commentaires SET rang=:rangg WHERE id=:id');
        $resultrg->execute(array(
            ':rangg' => $rangg,
            ':id' => $id
            ));
        }
    }
    if(isset($_POST['submsg'])&&$_SESSION['user']!='Demo'){
        $tp=$tpmsg;
        $auteur=$_SESSION['user'];
        $contenu=$_POST['contenu'];
        $date=time();
        $rang=1;
     
        $result = $pdo->prepare('INSERT INTO commentaires (tp, auteur, contenu, date, rang) VALUES(:tp, :auteur, :contenu, :date, :rang)');
        $result->execute(array(
            ':tp' => $tp,
            ':auteur' => $auteur,
            ':contenu' => $contenu,
            ':date' => $date,
            ':rang' => $rang,
            ));
        header('Location:/TP/tp'.$tpmsg.'.php');        
    }
    ?>
     
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <link rel="icon" type="image/png" href="favicon.png" />
    <title>Commentaires TP <?php echo $tpmsg; ?></title>
    </head>
     
    <body>
     
    <?php
     
    $reqmsg = $pdo->query('SELECT auteur, date, contenu, rang, id FROM commentaires WHERE tp='.$_SESSION["tpmsg"].' ORDER BY date');
     
    while ($msg = $reqmsg->fetch()) {
        if($msg['rang']==2){
            $bgcolormsg = 'rgba(0, 255, 0, 0.3)';
     
        }else if($msg['rang']==0){
            $bgcolormsg = 'rgba(255, 0, 0, 0.3)';
        }
     
    echo '
    <center><table style="border-radius:10px;border:1px solid black;width:80%;border-bottom:0px!important;">
    <tr style="border:1px solid black;border-bottom:0px!important;">
    <td style="border:0px solid black;text-align:left;border-right:0px;background-color: '.$bgcolormsg.';padding:5px;">'.$msg["auteur"].', le '.$msg["date"].'</td>
    <td style="border:0px solid black;text-align:right;border-left:0px;background-color: '.$bgcolormsg.';padding:5px;">'.$choixrang.'</td>
    </tr>
    </table>
    <table style="border-radius:10px;border:1px solid black;width:80%;border-top:0px!important;">
    <tr style="border:1px solid black;border-bottom:0px!important;">
    <td style="padding:10px">'.$msg["contenu"].'</td>
    </tr>
    </table></center>
    ';
     
    } ?>
     
     
    </body>
    <html>
    ps: les messages sont envoyés depuis une autre page, celle ci est en iframe dans l'autre.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Tu pourrais tout aussi bien mettre la recette de tarte aux pommes/bananes de ta grand-mère que ça ne changerait rien.

    Explique-nous ton code ! (mets des commentaires !)

    + à quoi fait référence $msg["$id"] ?

  8. #8
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 299
    Par défaut
    Il vient de
    Citation Envoyé par To175 Voir le message
    Merci, en effet j'ai fait une erreur avec msg id,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $reqmsg = $pdo->query('SELECT auteur, date, contenu, rang, id FROM commentaires WHERE tp='.$_SESSION["tpmsg"].' ORDER BY date');
    while ($msg = $reqmsg->fetch()) {
    ps: les messages sont envoyés depuis une autre page, celle ci est en iframe dans l'autre.
    ...

  9. #9
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 299
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    "...ORDER BY date DESC, rang ASC"
    Je cherche à afficher les messages de cette façon :
    Récent parmi vert
    Ancien parmi vert
    Récent parmi blanc
    Ancien parmi blanc
    Récent parmi rouge
    Ancien parmi rouge

  10. #10
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "...ORDER BY date DESC, GROUP BY rang ASC"

  11. #11
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Par défaut
    un group by après un order by .... ça ne va pas marcher...

  12. #12
    Invité
    Invité(e)
    Par défaut
    En effet, c'est un peu plus complexe...

    Essaye :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $req = 'SELECT c.auteur, c.date, c.contenu, c.id 
    FROM commentaires c,
    (SELECT c2.rang
    FROM commentaires c2
    GROUP BY c2.rang) b 
    WHERE c.rang = b.rang
    AND c.tp='.$_SESSION["tpmsg"].' 
    ORDER BY c.date';
    Voir :

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur connexion base de données avec script ANT
    Par doons dans le forum Hibernate
    Réponses: 0
    Dernier message: 18/03/2015, 16h57
  2. connexion de JSP avec une base de données insertion
    Par sousou_ dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 28/12/2006, 13h59
  3. erreur de conexion a une base de donneés access avec excel(vba)
    Par leo13 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 27/11/2006, 09h09
  4. exploiter une base de données excel avec delphi
    Par budylove dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/02/2005, 19h37
  5. Réponses: 2
    Dernier message: 19/06/2003, 21h58

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