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 :

Modification et ajout de donnée depuis un formulaire [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut Modification et ajout de donnée depuis un formulaire
    Bonjour à tous,

    Voilà j'essaye de créer un panneau d'administration mais pour l'instant je n'arrive depuis ce fameux panneau juste à supprimer les offres de logement que j'ai inséré.

    J'aimerais savoir ou est le problème dans l'ajout et la modification des annonces ?

    Merci d'avance pour votre aide !

    Le code est un peu long enfin pas trop non plus mais suffisamment pour éviter de coller la source ici je joint donc les fichiers correspondants.

    Le fichier liste_offre.php qui permet d'afficher un panneau listant toutes les offres mais aussi deux boutons soit pour les modifier ou les supprimer.

    Le fichier rediger_offre.php qui est un formulaire qui permet soit la modification soit l'ajout d'offre dans la bdd.

    Le fichier admin.php qui est la page permettant de choisir soit d'effectuer la gestion des offres ou la gestion des news du site.

    Merci d'avance pour votre aide précieuse.
    Fichiers attachés Fichiers attachés

  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
    Par défaut
    Dans ton rediger_offre.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (isset($_GET['modifier_offre'])) 
          // aucun interet de proteger un chiffre ni avec mysql_real_escape_string ni avec htmlentities
          $retour = mysql_query('SELECT * FROM base_logement WHERE id=' . intval($_GET['modifier_offre']));
        while ($donnees = mysql_fetch_array($retour)) {    
     
            // tes données ne viennent pas de $_POST mais de la requête
    	$meuble = $donnee['meuble']);
    }
    ligne 124 tu as mis "contenu" au lieu de "description"
    ligne 116 tu as mis "loter" au lieu de "loyer"

    Pour toutes tes requêtes, c'est mysql_real_escape_string() qu'il faut utiliser sur les chaines et non addlslashes().

    Quand tu developpes, il faut afficher toutes les erreurs et controler tes variables.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut
    Merci pour ta réponse sabotage !

    J'ai corriger les erreurs effectivement que tu m'as indiqué mais il doit me rester un problème je n'arrive pas à récupérer les données de la bdd dans les champs du formulaires pour modifier une offre... cependant l'offre peut être modifier correctement.

    Et lors de la création d'une nouvelle offre j'ai le droit à une fameuse erreur :

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in rediger_offre.php on line 57

    Mais je ne vois pas ce que ça pourrait être
    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
    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
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     
    <title>LOGI'EIPC</title>
     
    <meta name="robots" content="index, follow" />
    <meta name="revisit-after" content="21 days" />
    <meta name="author" content="" />
    <meta name="copyright" content="" />
    <meta name="rating" content="Global" />
    <meta http-equiv="imagetoolbar" content="no" />
    <meta name="Description" content="" />
    <meta name="Keywords" content="" />
    <meta name="abstract" content="" />
    <link type="text/css" rel="stylesheet" href="layout.css" title="default" media="all" />
    </head>
     
    <body id="rediger_news">
    <div id="main-wrapper" align="center">
     
    <div id="logo">
    <a href="index.html" title="Find a Property home">LOGI'<span>EIPC</span></a></div>
    <div id="nav-wrapper">
    <div id="navigation">
    <ul>
    <li><a href="../index.php" title="Accueil" id="home-link">Accueil</a></li>
    <li><a href="../services2.php" title="Information" id="info-link">Informations</a></li>
    <li><a href="../news.php" title="Les news" id="news-link">News</a></li>
    <li><a href="../offre2.php" title="Les offres" id="offres-link">Les offres</a></li>
    <li><a href="admin.php" title="services" id="admin-link">Administration</a></li>
    <li><a href="../contact.html" title="Une question ?" id="contact-link" class="last">Nous Contacter</a></li>
    </ul>
    </div>
     
    <div id="nav-right">
    </div>
    </div>
    <div class="clear"></div>
     
    <div id="content-area">
    <br />
    <div id="content-top"></div>
    <div id="content-main">
     
    <h3><a href="liste_offre.php">Retour à la liste des offres </a> &nbsp &nbsp <a href="admin.php">Retour à la page d'administration </a></h3>
     
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("base_logement");
     
    if (isset($_GET['modifier_offre'])) 
     
          $retour = mysql_query('SELECT * FROM base_logement WHERE id=' . intval($_GET['modifier_offre']));
     
        while ($donnees = mysql_fetch_array($retour)) 
    	{    
        $meuble = $donnees['meuble'];
        $loyer = $donnees['loyer'];
    	$distance = $donnees['distance'];
    	$superficie = $donnees['superficie'];
    	$description = $donnees['description'];
    	$prenom_proprio = $donnees['prenom_proprio'];
    	$nom_proprio = $donnees['nom_proprio'];
    	$rue = $donnees['rue'];
    	$code_postal = $donnees['code_postal'];
    	$ville = $donnees['ville'];
    	$num_fixe = $donnees['num_fixe'];
    	$id_offre = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
        }
     
    if (isset($_GET['modifier_offre'])) // Si on demande de modifier une offre
    {
        // On protège la variable "modifier_offre" pour éviter une faille SQL
        $_GET['modifier_offre'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_offre']));
        // On récupère les infos de la news correspondante
     
        $retour = mysql_query('SELECT * FROM base_logement WHERE id=\'' . $_GET['modifier_offre'] . '\'');
        $donnees = mysql_fetch_array($retour);
     
        // On place les champs dans des variables simples
    	$meuble = mysql_real_escape_string($_POST['meuble']);
        $loyer = mysql_real_escape_string($_POST['loyer']);
    	$distance = mysql_real_escape_string($_POST['distance']);
    	$superficie = mysql_real_escape_string($_POST['superficie']);
    	$description = mysql_real_escape_string($_POST['description']);
    	$prenom_proprio = mysql_real_escape_string($_POST['prenom_proprio']);
    	$nom_proprio = mysql_real_escape_string($_POST['nom_proprio']);
    	$rue = mysql_real_escape_string($_POST['rue']);
    	$code_postal = mysql_real_escape_string($_POST['code_postal']);
    	$ville = mysql_real_escape_string($_POST['ville']);
    	$num_fixe = mysql_real_escape_string($_POST['num_fixe']); 
    	$id_offre = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
     
    }
    else // C'est qu'on rédige une nouvelle news
    {
        // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle offre
    	$id_offre = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
    	$meuble = '';
        $loyer = '';
    	$distance = '';
    	$superficie = '';
    	$description = '';
    	$prenom_proprio = '';
    	$nom_proprio = '';
    	$rue = '';
    	$code_postal = '';
    	$ville = '';
    	$num_fixe = '';
     
    }
    ?>
     
    <form action="liste_offre.php" method="post">
     
    <p align="center" bgcolor="" class="color">Type :</span> <br />
    <select name="meuble" size=1 value="<?php echo $meuble; ?>">
    <option selected>Type de logement<option>Studio <option>Appartement<option>Chambre<option>Maison<option>Gites</option> 
    </select>
    </p>
     
    <p align="center" bgcolor="" class="color">Meuble :</span> <br />
    <select name="meuble" size=1 value="<?php echo $meuble; ?>">
    <option selected>Meubler ? <option>Oui<option> non </option> 
    </select>
    </p>
     
    <p>Loyer : <br />   <input type="text" size="30" name="loyer" value="<?php echo $loyer; ?>" /></p> 
     
    <p>Distance :  <br /><input type="text" size="30" name="distance" value="<?php echo $distance; ?>" /></p>
     
    <p>Superficie : <br /> <input type="text" size="30" name="superficie" value="<?php echo $superficie; ?>" /></p>
     
    <p>Description : <br />
     
      <textarea name="description" cols="50" rows="10">
        <?php echo $description; ?>
        </textarea>
    	<br />
    </p>
     
    <p>Prénom du propriétaire : <br /> <input type="text" size="30" name="prenom_proprio" value="<?php echo $prenom_proprio; ?>" /></p>
     
     
    <p>Nom du propriétaire    : <br /> <input type="text" size="30" name="nom_proprio" value="<?php echo $nom_proprio; ?>" /></p>
     
    <p>Rue    : <br /> <input type="text" size="30" name="rue" value="<?php echo $rue; ?>" /></p>
     
    <p>code postale    : <br /> <input type="text" size="30" name="code_postal" value="<?php echo $code_postal ?>" /></p>
     
    <p>Ville    : <br /> <input type="text" size="30" name="ville" value="<?php echo $ville; ?>" /></p>
     
    <p>Numéro de téléphone fixe   : <br /> <input type="text" size="30" name="num_fixe" value="<?php echo $num_fixe; ?>" /></p>
     
     
    <input type="hidden" name="id_offre" value="<?php echo $id_offre; ?>" />
    <input type="submit" value="Envoyer" /> 
     
     
    </form>
    <br />
    </div>
    </div>
    </body>
    </html>

  4. #4
    Membre confirmé
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 73
    Par défaut
    la ligne 55 la requête semble incorrecte essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $retour = mysql_query('SELECT * FROM base_logement WHERE id=" . intval($_GET["modifier_offre"])"');
    fais attention aux quote qui delimite

  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
    C'est quoi la partie de code de la ligne 75 à la ligne 98 que tu as ajouté ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut
    Merci pour le message j'ai donc changer la requête mais j'ai un petit soucis :

    Avant changement de le requête la modification d'une annonce n'entrainer pas d'erreur maintenant j'ai ça :

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in rediger_offre.php on line 58

    et l'ajout d'une nouvelle offre me donne comme erreur :

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in rediger_offre.php on line 58

    Donc en fait la même erreur ce serait un problème venant de la requête alors ?

    j'ai modifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $retour = mysql_query('SELECT * FROM base_logement WHERE id=' . intval($_GET['modifier_offre']));
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $retour = mysql_query('SELECT * FROM base_logement WHERE id=" . intval($_GET["modifier_offre"])"');
    Merci d'avance

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut
    Autant pour moi effectivement il y avait un petit doublon des lignes 75 à 98 !

    J'arrive à parfaitement récupérer donc les donnés de la base, j'arrive à supprimer et donc modifier.

    Le problème réside en ce qui concerne l'ajout d'offre... c'est d'ailleurs étrange parce qu'il me semble que ça à fonctionner mais je n'en n'est pas la certitude.

    Ce morceau de code dans liste_offre.php me pose problème :

    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
    94
    95
    96
    97
    98
    99
     
    <h2><a href="rediger_offre.php">Ajouter une annonce</a> &nbsp &nbsp <a href="admin.php">Retour à l'Administration</a> </h2>
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("base_logement");
    //-----------------------------------------------------
    // Vérification 1 : est-ce qu'on veut poster une nouvelle offre ?
    //-----------------------------------------------------
    //isset($_POST['meuble']) AND isset($_POST['loyer']) AND  isset($_POST['superficie']) AND isset($_POST['description'])
    //AND isset($_POST['prenom_proprio']) AND isset($_POST['nom_proprio']) AND isset($_POST['rue']) AND isset($_POST['code_postal']) AND isset($_POST['ville']) AND isset($_POST['num_fixe'])
    //AND isset($_POST['num_portable'])
     
     
    if (isset($_POST['meuble']) AND isset($_POST['loyer']) AND  isset($_POST['superficie']) AND isset($_POST['description']) 
    AND isset($_POST['prenom_proprio']) AND isset($_POST['nom_proprio']) AND isset($_POST['rue']) AND isset($_POST['code_postal']) AND isset($_POST['ville']) AND isset($_POST['num_fixe'])
    AND isset($_POST['num_portable']))
    {
    	echo 'test ok' ;
            $meuble = addslashes($_POST['meuble']);
            $loyer = addslashes($_POST['loyer']);
    	$distance = addslashes($_POST['distance']);
    	$superficie = addslashes($_POST['superficie']);
    	$description = addslashes($_POST['description']);
    	$prenom_proprio = addslashes($_POST['prenom_proprio']);
    	$nom_proprio = addslashes($_POST['nom_proprio']);
    	$rue = addslashes($_POST['rue']);
    	$code_postal = addslashes($_POST['code_postal']);
    	$ville = addslashes($_POST['ville']);
    	$num_fixe = addslashes($_POST['num_fixe']);
     
        // On vérifie si c'est une modification des offres ou pas
        if ($_POST['id_offre'] == 0)
        {
    		echo "nouvelle offre >> id_news ==0 ";
            // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
           mysql_query("INSERT INTO base_logement VALUES('', '" . $meuble . "', '" . $loyer . "', '" . $distance . "', '" . $superficie . "', '" . $description . "', '" . $prenom_proprio . "','" . $nom_proprio . "','" . $rue . "','" .$code_postal . "', '" . $ville . "', '" . $num_fixe . "')");
        }
        else
        {
            // On protège la variable "id_offre" pour éviter une faille SQL
            $_POST['id_offre'] = addslashes($_POST['id_offre']);
            // C'est une modification, on met juste à jour le différents champs
            mysql_query("UPDATE base_logement SET meuble='" . $meuble . "', loyer='" . $loyer . "', distance='" . $distance . "', superficie='" . $superficie . "', description='" . $description . "', prenom_proprio='" . $prenom_proprio . "', nom_proprio='" . $nom_proprio . "', rue='" . $rue . "', code_postal='" . $code_postal . "', ville='" . $ville . "', num_fixe='" . $num_fixe . "' WHERE id='" . $_POST['id_offre'] . "'");
        }
    }
     
    //--------------------------------------------------------
    // Vérification 2 : est-ce qu'on veut supprimer l'offre ?
    //--------------------------------------------------------
    if (isset($_GET['supprimer_offre'])) // Si on demande de supprimer une offre
    {
        // Alors on supprime l'offre correspondante
        // On protège la variable "id_offre" pour éviter une faille SQL
        $_GET['supprimer_offre'] = addslashes($_GET['supprimer_offre']);
        mysql_query('DELETE FROM base_logement WHERE id=\'' . $_GET['supprimer_offre'] . '\'');
    }
    ?>
    <center>
    <table border=1>
    <tr>
    <th>Modifier</th>
    <th>Supprimer</th>
    <th>Type</th>
    <th>Meuble</th>
    <th>Loyer</th>
    <th>Distance</th>
    <th>Superficie</th>
    <th>Prenom_proprio</th>
    <th>Nom_proprio</th>
    <th>Rue</th>
    <th>Code Postale</th>
    <th>Ville</th>
    </tr>
    </center>
     
    <?php
    $retour = mysql_query('SELECT * FROM base_logement ORDER BY id DESC');
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    {
    ?>
    <tr align="center">
    <td><?php echo '<a href="rediger_offre.php?modifier_offre=' . $donnees['id'] . '">'; ?>Modifier</a></td>
    <td><?php echo '<a href="liste_offre.php?supprimer_offre=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
    <td><?php echo stripslashes($donnees['type']); ?></td>
    <td><?php echo stripslashes($donnees['meuble']);?></td>
    <td><?php echo stripslashes($donnees['loyer']);?></td>
    <td><?php echo stripslashes($donnees['distance']);?></td>
    <td><?php echo stripslashes($donnees['superficie']);?></td>
    <td><?php echo stripslashes($donnees['prenom_proprio']);?></td>
    <td><?php echo stripslashes($donnees['nom_proprio']);?></td>
    <td><?php echo stripslashes($donnees['rue']);?></td>
    <td><?php echo stripslashes($donnees['code_postal']);?></td>
    <td><?php echo stripslashes($donnees['ville']);?></td>
    </tr>
     
    <?php
    } // Fin de la boucle qui liste les offres
    ?>
    </table>
    J'ai un doute sur mon premier test, il semble que si j'essaye de rentrer une nouvelle offre le test est toujours faux...

    Merci d'avance encore pour votre aide !

  8. #8
    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
    Il manque num_portable dans ton INSERT.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut
    Merci bien vu décidément ^^

    J'ai modifié mais j'ai l'impression que ça vient d'ailleurs encore ?
    Ma condition de test est correct ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (isset($_POST['meuble']) AND isset($_POST['loyer']) AND  isset($_POST['superficie']) AND isset($_POST['description']) 
    AND isset($_POST['prenom_proprio']) AND isset($_POST['nom_proprio']) AND isset($_POST['rue']) AND isset($_POST['code_postal']) AND isset($_POST['ville']) AND isset($_POST['num_fixe'])
    AND isset($_POST['num_portable']))
    ça pourrais venir d'où ?

  10. #10
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Tu as
    Sabotage l'a dit, mais ton fichier reste le même !!!!
    Donc
    dans ton formulaire de rédaction d'une offre, donc le isset tel que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    isset($_POST['loyer'])
    sera toujours faux .....

    Ou alors remets nous les derniers fichiers

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut
    Bonjour,

    Merci Fench mais effectivement j'ai modifier le fichier, les fichiers présent au début ne sont pas les bons voici les derniers fichiers liste_offre et rediger_offre :

    Liste offre :

    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
    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
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     
    <title>LOGI'EIPC</title>
     
    <meta name="robots" content="index, follow" />
    <meta name="revisit-after" content="21 days" />
    <meta name="author" content="" />
    <meta name="copyright" content="" />
    <meta name="rating" content="Global" />
    <meta http-equiv="imagetoolbar" content="no" />
    <meta name="Description" content="" />
    <meta name="Keywords" content="" />
    <meta name="abstract" content="" />
    <link type="text/css" rel="stylesheet" href="layout.css" title="default" media="all" />
    </head>
     
    <body id="home">
    <div id="main-wrapper">
     
    <div id="logo">
    <a href="index.html" title="Find a Property home">LOGI'<span>EIPC</span></a></div>
    <div id="nav-wrapper">
    <div id="navigation">
    <ul>
    <li><a href="../index.php" title="Accueil" id="home-link">Accueil</a></li>
    <li><a href="../services2.php" title="Information" id="info-link">Informations</a></li>
    <li><a href="../news.php" title="Les news" id="news-link">News</a></li>
    <li><a href="../offre2.php" title="Les offres" id="offres-link">Les offres</a></li>
    <li><a href="admin.php" title="services" id="admin-link">Administration</a></li>
    <li><a href="../contact.html" title="Une question ?" id="contact-link" class="last">Nous Contacter</a></li>
    </ul>
    </div>
     
    <div id="nav-right">
    </div>
    </div>
    <div class="clear"></div>
     
    <div id="content-area">
    <br />
    <div id="content-top"></div>
    <div id="content-main">
     
    <h2><a href="rediger_offre.php">Ajouter une annonce</a> &nbsp &nbsp <a href="admin.php">Retour à l'Administration</a> </h2>
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("base_logement");
    //-----------------------------------------------------
    // Vérification 1 : est-ce qu'on veut poster une nouvelle offre ?
    //-----------------------------------------------------
    //isset($_POST['meuble']) AND isset($_POST['loyer']) AND  isset($_POST['superficie']) AND isset($_POST['description'])
    //AND isset($_POST['prenom_proprio']) AND isset($_POST['nom_proprio']) AND isset($_POST['rue']) AND isset($_POST['code_postal']) AND isset($_POST['ville']) AND isset($_POST['num_fixe'])
    //AND isset($_POST['num_portable'])
     
     
    if (isset($_POST['meuble']) AND isset($_POST['loyer']) AND  isset($_POST['superficie']) AND isset($_POST['description']) 
    AND isset($_POST['prenom_proprio']) AND isset($_POST['nom_proprio']) AND isset($_POST['rue']) AND isset($_POST['code_postal']) AND isset($_POST['ville']) AND isset($_POST['num_fixe'])
    AND isset($_POST['num_portable']))
    {
    	echo 'test ok' ;
        /*
    	$meuble = addslashes($_POST['meuble']);
        $loyer = addslashes($_POST['loyer']);
    	$distance = addslashes($_POST['distance']);
    	$superficie = addslashes($_POST['superficie']);
    	$description = addslashes($_POST['description']);
    	$prenom_proprio = addslashes($_POST['prenom_proprio']);
    	$nom_proprio = addslashes($_POST['nom_proprio']);
    	$rue = addslashes($_POST['rue']);
    	$code_postal = addslashes($_POST['code_postal']);
    	$ville = addslashes($_POST['ville']);
    	$num_fixe = addslashes($_POST['num_fixe']);
    	*/
    	$meuble = mysql_real_escape_string($_POST['meuble']);
        $loyer = mysql_real_escape_string($_POST['loyer']);
    	$distance = mysql_real_escape_string($_POST['distance']);
    	$superficie = mysql_real_escape_string($_POST['superficie']);
    	$description = mysql_real_escape_string($_POST['description']);
    	$prenom_proprio = mysql_real_escape_string($_POST['prenom_proprio']);
    	$nom_proprio = mysql_real_escape_string($_POST['nom_proprio']);
    	$rue = mysql_real_escape_string($_POST['rue']);
    	$code_postal = mysql_real_escape_string($_POST['code_postal']);
    	$ville = mysql_real_escape_string($_POST['ville']);
    	$num_fixe = mysql_real_escape_string($_POST['num_fixe']);
    	$num_portable = mysql_real_escape_string($_POST['num_portable']);
        // On vérifie si c'est une modification des offres ou pas
        if ($_POST['id_offre'] == 0)
        {
    		echo "nouvelle offre >> id_news ==0 ";
            // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
           mysql_query("INSERT INTO base_logement VALUES('', '" . $meuble . "', '" . $loyer . "', '" . $distance . "', '" . $superficie . "', '" . $description . "', '" . $prenom_proprio . "','" . $nom_proprio . "','" . $rue . "','" .$code_postal . "', '" . $ville . "', '" . $num_fixe . "', '" . $num_portable . "')");
        }
        else
        {
            // On protège la variable "id_offre" pour éviter une faille SQL
            $_POST['id_offre'] = addslashes($_POST['id_offre']);
            // C'est une modification, on met juste à jour le différents champs
            mysql_query("UPDATE base_logement SET meuble='" . $meuble . "', loyer='" . $loyer . "', distance='" . $distance . "', superficie='" . $superficie . "', description='" . $description . "', prenom_proprio='" . $prenom_proprio . "', nom_proprio='" . $nom_proprio . "', rue='" . $rue . "', code_postal='" . $code_postal . "', ville='" . $ville . "', num_fixe='" . $num_fixe . "', num_portable='" . $num_portable . "' WHERE id='" . $_POST['id_offre'] . "'");
    	}
     
       }
     
     
    //--------------------------------------------------------
    // Vérification 2 : est-ce qu'on veut supprimer l'offre ?
    //--------------------------------------------------------
    if (isset($_GET['supprimer_offre'])) // Si on demande de supprimer une offre
    {
        // Alors on supprime l'offre correspondante
        // On protège la variable "id_offre" pour éviter une faille SQL
        $_GET['supprimer_offre'] = addslashes($_GET['supprimer_offre']);
        mysql_query('DELETE FROM base_logement WHERE id=\'' . $_GET['supprimer_offre'] . '\'');
    }
    ?>
    <center>
    <table border=1>
    <tr>
    <th>Modifier</th>
    <th>Supprimer</th>
    <th>Type</th>
    <th>Meuble</th>
    <th>Loyer</th>
    <th>Distance</th>
    <th>Superficie</th>
    <th>Prenom_proprio</th>
    <th>Nom_proprio</th>
    <th>Rue</th>
    <th>Code Postale</th>
    <th>Ville</th>
    </tr>
    </center>
     
    <?php
    $retour = mysql_query('SELECT * FROM base_logement ORDER BY id DESC');
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    {
    ?>
    <tr align="center">
    <td><?php echo '<a href="rediger_offre.php?modifier_offre=' . $donnees['id'] . '">'; ?>Modifier</a></td>
    <td><?php echo '<a href="liste_offre.php?supprimer_offre=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
    <td><?php echo stripslashes($donnees['type']); ?></td>
    <td><?php echo stripslashes($donnees['meuble']);?></td>
    <td><?php echo stripslashes($donnees['loyer']);?></td>
    <td><?php echo stripslashes($donnees['distance']);?></td>
    <td><?php echo stripslashes($donnees['superficie']);?></td>
    <td><?php echo stripslashes($donnees['prenom_proprio']);?></td>
    <td><?php echo stripslashes($donnees['nom_proprio']);?></td>
    <td><?php echo stripslashes($donnees['rue']);?></td>
    <td><?php echo stripslashes($donnees['code_postal']);?></td>
    <td><?php echo stripslashes($donnees['ville']);?></td>
    </tr>
     
    <?php
    } // Fin de la boucle qui liste les offres
    ?>
    </table>
     
     
    </div>
    </div>
    </body>
    </html>
    Rediger_offre.php

    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
    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
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     
    <title>LOGI'EIPC</title>
     
    <meta name="robots" content="index, follow" />
    <meta name="revisit-after" content="21 days" />
    <meta name="author" content="" />
    <meta name="copyright" content="" />
    <meta name="rating" content="Global" />
    <meta http-equiv="imagetoolbar" content="no" />
    <meta name="Description" content="" />
    <meta name="Keywords" content="" />
    <meta name="abstract" content="" />
    <link type="text/css" rel="stylesheet" href="layout.css" title="default" media="all" />
    </head>
     
    <body id="rediger_news">
    <div id="main-wrapper" align="center">
     
    <div id="logo">
    <a href="index.html" title="Find a Property home">LOGI'<span>EIPC</span></a></div>
    <div id="nav-wrapper">
    <div id="navigation">
    <ul>
    <li><a href="../index.php" title="Accueil" id="home-link">Accueil</a></li>
    <li><a href="../services2.php" title="Information" id="info-link">Informations</a></li>
    <li><a href="../news.php" title="Les news" id="news-link">News</a></li>
    <li><a href="../offre2.php" title="Les offres" id="offres-link">Les offres</a></li>
    <li><a href="admin.php" title="services" id="admin-link">Administration</a></li>
    <li><a href="../contact.html" title="Une question ?" id="contact-link" class="last">Nous Contacter</a></li>
    </ul>
    </div>
     
    <div id="nav-right">
    </div>
    </div>
    <div class="clear"></div>
     
    <div id="content-area">
    <br />
    <div id="content-top"></div>
    <div id="content-main">
     
    <h3><a href="liste_offre.php">Retour à la liste des offres </a> &nbsp &nbsp <a href="admin.php">Retour à la page d'administration </a></h3>
     
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("base_logement");
     
    if (isset($_GET['modifier_offre'])) 
    {
        $retour = mysql_query('SELECT * FROM base_logement WHERE id=' . intval($_GET['modifier_offre']));
     
        while ($donnees = mysql_fetch_array($retour)) 
    	{    
        $meuble = $donnees['meuble'];
        $loyer = $donnees['loyer'];
    	$distance = $donnees['distance'];
    	$superficie = $donnees['superficie'];
    	$description = $donnees['description'];
    	$prenom_proprio = $donnees['prenom_proprio'];
    	$nom_proprio = $donnees['nom_proprio'];
    	$rue = $donnees['rue'];
    	$code_postal = $donnees['code_postal'];
    	$ville = $donnees['ville'];
    	$num_fixe = $donnees['num_fixe'];
    	$num_portable = $donnees['num_portable'];
    	$id_offre = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
        }
    }
     
    else // C'est qu'on rédige une nouvelle offre
    {
        // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle offre
    	$id_offre = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
    	$meuble = '';
        $loyer = '';
    	$distance = '';
    	$superficie = '';
    	$description = '';
    	$prenom_proprio = '';
    	$nom_proprio = '';
    	$rue = '';
    	$code_postal = '';
    	$ville = '';
    	$num_fixe = '';
    	$num_portable = '';
     
    }
    ?>
     
    <form action="liste_offre.php" method="post">
     
    <p align="center" bgcolor="" class="color">Type :</span> <br />
    <select name="meuble" size=1 value="<?php echo $meuble; ?>">
    <option selected>Type de logement<option>Studio <option>Appartement<option>Chambre<option>Maison<option>Gites</option> 
    </select>
    </p>
     
    <p align="center" bgcolor="" class="color">Meuble :</span> <br />
    <select name="meuble" size=1 value="<?php echo $meuble; ?>">
    <option selected>Meubler ? <option>Oui<option> non </option> 
    </select>
    </p>
     
    <p>Loyer : <br />   <input type="text" size="30" name="loyer" value="<?php echo $loyer; ?>" /></p> 
     
    <p>Distance :  <br /><input type="text" size="30" name="distance" value="<?php echo $distance; ?>" /></p>
     
    <p>Superficie : <br /> <input type="text" size="30" name="superficie" value="<?php echo $superficie; ?>" /></p>
     
    <p>Description : <br />
     
      <textarea name="description" cols="50" rows="10">
        <?php echo $description; ?>
        </textarea>
    	<br />
    </p>
     
    <p>Prénom du propriétaire : <br /> <input type="text" size="30" name="prenom_proprio" value="<?php echo $prenom_proprio; ?>" /></p>
     
     
    <p>Nom du propriétaire    : <br /> <input type="text" size="30" name="nom_proprio" value="<?php echo $nom_proprio; ?>" /></p>
     
    <p>Rue    : <br /> <input type="text" size="30" name="rue" value="<?php echo $rue; ?>" /></p>
     
    <p>code postale    : <br /> <input type="text" size="30" name="code_postal" value="<?php echo $code_postal ?>" /></p>
     
    <p>Ville    : <br /> <input type="text" size="30" name="ville" value="<?php echo $ville; ?>" /></p>
     
    <p>Numéro de téléphone fixe   : <br /> <input type="text" size="30" name="num_fixe" value="<?php echo $num_fixe; ?>" /></p>
     
    <p>Numéro de téléphone portable   : <br /> <input type="text" size="30" name="num_portable" value="<?php echo $num_portable; ?>" /></p>
     
     
     
    <input type="hidden" name="id_offre" value="<?php echo $id_offre; ?>" />
    <input type="submit" value="Envoyer" /> 
     
     
    </form>
    <br />
    </div>
    </div>
    </body>
    </html>
    Voilà effectivement ça sera plus simple avec les fichiers à jour désolé encore...

    La modification des annonces et la suppression des annonces fonctionne c'est l'ajout d'une annonce qui pose problème j'ai l'impression qu'il passe le test mais il n'arrive pas à écrire dans la base...

    Merci d'avance toujours pour votre aide ^^

  12. #12
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    De toutes les façons, tu as bien l'echo "test ok" qui s'affiche ?

    Ensuite, y a souvent des problèmes (une manip différente) pour les textarea (mais que je n'ai toujours pas retenu ) ...
    Genre les \r\n

    Essayes déjà sans le textArea (juste un string bidon) pour voir si c ça ?

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut
    Merci Fench ^^

    Alors j'ai essayé ce que tu me proposer mais ça n'as pas eu d'effet alors j'ai décider d'imprimer mon code pour l'avoir sous les yeux, et j'ai vu assez rapidement qu'il manquer la variable type qui est censé supporter le type de logement je l'ai donc rajouter et là magique tout fonctionne ^^

    En tout cas je vous remercie pour votre patience.

    Si je voudrait chipoter il reste juste un petit détail quand j'essaye de récupérer les données de ma base dans le formulaire, il se trouve que j'ai une liste déroulante qui ne prend pas la valeur correspondante aux informations.

    Ce qui occasionne lors d'une modification si on ne ressaisit pas le type, une modification de la valeur par un champ vide...

    Merci encore à tous pour tout ^^

  14. #14
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Ok, tu peux mettre sur résolu

    Pour ta liste déroulante, c normal vu que tu ne donnes pas de value pour tes options (regardes de nouveau la description d'un select sur un tuto quelconque)

  15. #15
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <option value="Studio">Studio</option>

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 126
    Par défaut
    Merci,

    Effectivement mon value était non pas dans l'option mais dans l'input très peu de chance que ça fonctionne alors...

    A bientôt

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

Discussions similaires

  1. [ZF 1.10] Problème dans l'ajout des données depuis un formulaire
    Par king_soft dans le forum Zend_Form
    Réponses: 6
    Dernier message: 24/01/2011, 09h25
  2. Réponses: 1
    Dernier message: 17/10/2008, 06h23
  3. Réponses: 1
    Dernier message: 28/08/2008, 22h53
  4. récuperer des données depuis un formulaire
    Par anaaa dans le forum Langage
    Réponses: 2
    Dernier message: 03/12/2007, 11h34
  5. Réponses: 2
    Dernier message: 17/05/2006, 17h54

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