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 :

Page PHP / PDO ne reçoit pas les variables passées par la page précédente [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Femme Profil pro
    piano
    Inscrit en
    Décembre 2011
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2011
    Messages : 131
    Points : 65
    Points
    65
    Par défaut Page PHP / PDO ne reçoit pas les variables passées par la page précédente
    Bonsoir,

    Comme dit dans l'intitulé, ma page ne reçoit pas les variables de la page précédente, mais ne génère pas de message d'erreur.

    Voici la page qui envoie la variable :

    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
    <?php
    require 'include/sqlconnect.php';
    include("menu.php");
    ?>
    <link rel="stylesheet" href="style.css" type="text/css">
    <link rel="stylesheet" href="menu/dropdown_three.css" type="text/css">
     
    <p  align="left">  ::  Concert</p>
     
    <center>
     
    <tr>
    <form action="concert_ajoute.php" method="post">
    <td><input type="submit"  value="Ajouter un concert " /></td>
     
    </form> 
    </tr>
     
    </center>
    <br />
     
    <table  class="bicolor"  width="80%"  align="center"  border="1">
      <tr>
     
        <th>Concert</th>
        <th>Lieu</th>
        <th>Date</th>
        <th  class="intitule">&nbsp;</th>		
      </tr>
     
    <?php
    $sth = $bdd->query("SELECT IDconcert, titreconcert, lieu, DATE_FORMAT( dateconcert, '%d/%m/%Y' ) AS dateconc FROM Concert ORDER by dateconcert DESC");
    while($row = $sth->fetch(PDO::FETCH_ASSOC))
    {
        $id  =  $row['IDconcert'];
        $tc  =  $row['titreconcert'];
        $lieu = $row['lieu'];
        $dateconc = $row['dateconc'];
        echo  "<tr>";
        echo  "<td>" . $row['titreconcert'] . "</td>";
        echo  "<td>" . $row['lieu'] . "</td>";
        echo  "<td>" . $row['dateconc'] . "</td>";
        echo  "<td>";
        echo  "<a href=concert_edite_pdo.php?id=$id>Editer</a>";
        echo  "</td>";
        echo  "</tr>";
    }
    $sth->closeCursor(); 
     
    echo  "</table>";
    ?>
    Et la page sensée la recevoir mais qui affiche seulement le numéro de l'id :

    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <?php error_reporting (E_ALL ^ E_NOTICE); ?>
    <?php
    require 'include/sqlconnect.php';
    include("menu.php");
    ?>
    <link rel="stylesheet" href="style.css" type="text/css">
    <link rel="stylesheet" href="menu/dropdown_three.css" type="text/css">
    <style type="text/css">
    input 	{width:400px;
    }
    td 	{width:134px;
    font-size: medium;
    }
    </style>
     
    <?php
     
    if  ($_REQUEST['action']=="maj")
    {
     
    $sth = $bdd->prepare("UPDATE Concert SET  
    titreconcert = '".$_REQUEST['titreconcert']."' ,
    lieu = '".$_REQUEST['lieu']."',	
    dateconcert = '".$_REQUEST['dateconcert']."'".
    "WHERE IDconcert ='".$_REQUEST['id']."'");
    $sth->execute(array(':id'=>$_POST['id']));
     
    }
    elseif  ($_REQUEST['action']=="suppr" && $_REQUEST['id']>=1)
    {
      $sth = $bdd->query("DELETE FROM Concert WHERE IDconcert ='".$_REQUEST['id']."'");
      header("location: http://www.chaletmurcie.ch/pages/osg/concert_edite_pdo.php");
    }
     
    echo "<p align=left> :: Concert [".$_REQUEST['id']."]</p>";
     
    $sth = $bdd->query("SELECT IDconcert, titreconcert, lieu, dateconcert FROM Concert WHERE IDconcert = '".$_REQUEST['id']."'");
    $Concert = $sth->fetchAll();
     
    ?>
     
    <form action="concert_edite_pdo.php" method="post">
    <input type="hidden" name="enregistre" value="oui" />
    <input type="hidden" name="id" value="<?php echo $_REQUEST['id']; ?>" />
     
    <table align="center">
    <tr>
     <td class="mediumfont">Concert</td>
     <td><input type="text" name="titreconcert" value="<?php echo $Concert['titreconcert']; ?>" /></td>
    </tr>
     
    <tr>
     <td class="mediumfont">Lieu</td>
     <td><input type="text" name="lieu" value="<?php echo $Concert['lieu']; ?>" /></td>
    </tr>
     
    <tr>
     <td class="mediumfont">Date</td>
     <td><input type="text" name="dateconcert" value="<?php echo $Concert['dateconcert']; ?>" /></td>
    </tr>
     
    </table>
     
    <br/>
     
    <table align="center">
    <tr>
    <td>
    <select  name="action">
     <option  value="maj">  Enregistrer  la  fiche  </option>
     <option  value="suppr">  Supprimer  la  fiche  </option>
    </select>
    </td>
    <td>
    <input  type="submit"  value="effectuer">
    </td>
    </tr>
    </table>	
    </form>
     
    <table align="center">
    <tr>
    <td>
    <form action="admin.php" method="post">
    <input type="submit" value="Terminé" />
    </form>	
    </td>
    </tr>
    </table>	
     
    <?php 
    $sth->closeCursor(); 
    ?>
    Une fois de plus merci d'avance pour votre aide

  2. #2
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut utiliser fetch() et pas fetchAll() ici.

    Et une requête préparée comme je t'ai déjà montré.

    Et n'utilise REQUEST que si tu dois as vraiment plusieurs façon différentes d'envoyer la requête.
    Précise bien method="POST" dans tes formulaires POST et utilise donc $_POST ou $_GET.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sth = $bdd->prepare("SELECT IDconcert, titreconcert, lieu, dateconcert FROM Concert WHERE IDconcert = :IDconcert");
    $sth->execute(array(':IDconcert'=>$_POST['id']);
    $Concert = $sth->fetch(PDO::FETCH_ASSOC);
    Et ne cache pas les erreurs de type NOTICE quand tu developpes.
    Il faut corriger les erreurs, pas les masquer.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Femme Profil pro
    piano
    Inscrit en
    Décembre 2011
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2011
    Messages : 131
    Points : 65
    Points
    65
    Par défaut


    Tu es super génial, je te remercie, j'ai essayé en vain de trouver la solution, mais je n'avais pas pensé que c'était simplement en remplaçant fetchAll() par fetch() que cela allait fonctionner. Je vais pouvoir passer au suivant, et petit à petit je vais arriver à passer de MYSQL à PDO, en ayant appris tout ce que tu m'as montré (bon parfois j'oublie d'appliquer tes conseils, mais je vais essayer de m'améliorer )

    Bon journée et bon week-end et encore un tout grand merci pour ton aide, ta patience et ta pédagogie.

  4. #4
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Pour mieux t'expliquer, fetchAll renvoit toutes les lignes résultats d'un coup dans un tableau indexé.
    Donc le résultat de ta ligne de résultat était en fait dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Concert[0]['titreconcert']
    Mais comme tu n'as qu'une ligne, autant ne faire qu'un fetch().
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Femme Profil pro
    piano
    Inscrit en
    Décembre 2011
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2011
    Messages : 131
    Points : 65
    Points
    65
    Par défaut
    Oui évidemment ! c'est claire, mais comme je débute je n'ai pas encore pensé à regarder toutes ces subtilités, je n'avais pas compris pourquoi des fois c'était fetch() et d'autres fetchAll(), si j'avais réfléchi j'aurais compris car le nom l'indique bien ! Parfois je veux aller plus vite que la musique (dans ce cas-là c'est de circonstance )

    Encore une chose d'apprise, merci beaucoup, ce soir je me coucherai moins bête

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

Discussions similaires

  1. [MySQL] Mon client ne reçoit pas les courriels envoyés par mon formulaire (mais moi oui)
    Par carogilb19 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 16/08/2012, 19h09
  2. Réponses: 0
    Dernier message: 16/12/2011, 16h52
  3. php ne reçoit pas les données du formulaire
    Par sissendz dans le forum Langage
    Réponses: 5
    Dernier message: 10/12/2008, 11h01
  4. [AJAX] les pages php ne s'actualisent pas avec les XMLHttpRequest
    Par Ceubex dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/08/2007, 12h22
  5. Question sur les variables passées par URL
    Par cotlod dans le forum Langage
    Réponses: 7
    Dernier message: 11/10/2006, 00h04

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