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

Langage PHP Discussion :

insertion à la base


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2011
    Messages : 12
    Points : 6
    Points
    6
    Par défaut insertion à la base
    bonjour, j'ai un problème dans l'insertion des données dans un base mysql à partir de formulaire:
    voici le code :
    Code php5 : 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
     
    <?php
    //On se connecte
    require_once("connexion.php");
    class hotel{
    public $Nomhotel;
    public $Adresse;
    public $Pays;
    public $Ville;
    public $Téléphone;
    public $Fax;
    public $Catégorie;
    function __construct($Nomhotel,$Adresse,$Pays,$Ville,$Téléphone,$Fax,$Catégorie){
    $this->Nomhotel =$Nomhotel;
    $this->Adresse =$Adresse;
    $this->Pays =$Pays;
    $this->Ville =$Ville;
    $this->Téléphone =$Téléphone;
    $this->Fax =$Fax;
    $this->Catégorie =$Catégorie;
    }
    //On récupère les valeurs entrées par l'utilisateur :
    public function ajouter(){
     
     
     
     
    //On prépare la commande sql d'insertion
    $sql = 'INSERT INTO hotel VALUES("'.$this->Nomhotel.'","'.$this->Adresse.'","'.$this->Pays.'","'.$this->Ville.'","'.$this->Téléphone.'","'.$this->Fax.'","'.$this->Catégorie.'")';
     $result->executerQuery($sql);
    /*on lance la commande (mysql_query) et au cas où,
    on rédige un petit message d'erreur si la requête ne passe pas (or die)
    (Message qui intègrera les causes d'erreur sql)*/
     
     
    }
    }
    if (!empty($_POST['nom0']) && !empty($_POST['nom1']) && !empty($_POST['nom2']) && !empty($_POST['nom3']) && !empty($_POST['nom4']) && !empty($_POST['nom5']) && !empty($_POST['nom6']))
    {
    $obj =new hotel($_POST['nom0'],$_POST['nom1'],$_POST['nom2'],$_POST['nom3'],$_POST['nom4'],$_POST['nom5'],$_POST['nom6']);
    $obj->ajouter();
    }
    ?>
    il m'affiche aucune faute mais les données n'insèrent pas dans la base .
    voici le code de connexion:
    Code php5 : 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
     
    <?php
    class connexion
    {
        private
            $Serveur     = '',
            $Bdd         = '',
            $Identifiant = '',
            $Mdp         = '',
            $Lien        = '';  
     
     
     
    /**
    * Constructeur de la classe
    * Connexion aux serveur de base de donnée et sélection de la base
    *
    * $Serveur     = L'hôte (ordinateur sur lequel Mysql est installé)
    * $Bdd         = Le nom de la base de données
    * $Identifiant = Le nom d'utilisateur
    * $Mdp         = Le mot de passe
    */ 
        public function __construct($Serveur = 'localhost', $Bdd = 'pfementionnée', $Identifiant = 'root', $Mdp = '') 
           {
                $this->Serveur     = $Serveur;
                $this->Bdd         = $Bdd;
                $this->Identifiant = $Identifiant;
                $this->Mdp         = $Mdp;
     
                $this->Lien=mysql_connect($this->Serveur,$this->Identifiant,$this->Mdp);
     
                if (!$this->Lien ) throw new Erreur ('Erreur de connexion au serveur MySql!!!');                
     
                $Base = mysql_select_db($this->Bdd,$this->Lien);
     
                if (!$Base) throw new Erreur ('Erreur de connexion à la base de donnees!!!');
    				else echo "";
           }
    }
    $obj=new connexion();
    ?>
    voici le code de formulaire:
    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
     
    <html>
    	<head>
    		<title>séjour</title>
    	</head>
    		<body bgcolor="black"><center>
    			<table background="image2.jpg" width="800" height="800">
    				<tr width="100" height="100">
    					<td>
    					</td>
    					<img src="man.jpg" width="200" height="100">
    						<form name="form1" action="ajouter.html">
    							<button type="button1"><img src="ajouter.jpg" width=100 height=100></button></form>
    						<form name="form2" action="modification.html">
    							<button type="button2"><img src="modifier.jpg" width=100 height=100></button></form>
    						<form name="form3" action="suppression.html">
    							<button type="button3"><img src="supprimer.jpg" width=100 height=100></button></form>
    					<img src="8.jpg" width="200" height="100">
    					<td>
    					</td>
    				</tr>
    				<tr><center>
    					<td>
    					</td>
    				     <td><center>
    					 <form action ="ajoutsejourhotel.php" method="POST" ENCTYPE=\"multipart/form-data\">
    				     <table width="800" height="800">
    				<tr>
    						<td>
    						 <tr>
    						  <td>
    						    <font color="white">Nom hotel:</font>
    						  </td>
    						  <td>
    						   <input type="text" name="Nomhotel">
    						  </td>
    						 </tr>
    						 <tr>
    						<td>
    						 <tr>
    						  <td>
    						    <font color="white">Adresse:</font>
    						  </td>
    						  <td>
    						    <input name="Adresse" type="text">
    						  </td>
    						 </tr>
    						 <tr>
    						<td>
    						 <tr>
    						  <td>
    						    <font color="white">Pays:</font>
    						  </td>
    						  <td>
    						    <input name="Pays" type="text">
    						  </td>
    						 </tr>
    						 <tr>
    						<td>
    						 <tr>
    						  <td>
    						    <font color="white">Ville:</font>
    						  </td>
    						  <td>
    						    <input name="Ville" type="text">
    						  </td>
    						 </tr>
    						 <tr>
    						  <td>
    						    <font color="white">Téléphone:</font>
    						  </td>
    						  <td>
    						    <input name="Téléphone" type="text">
    						  </td>
    						 </tr>
    						 <tr>
    						  <td>
    						    <font color="white">Fax:</font>
    						  </td>
    						  <td>
    						    <input name="Fax" type="text">
    						  </td>
    						 </tr>
    						 <tr>
    						  <td>
    						    <font color="white">Catégorie:</font>
    						  </td>
    						  <td>
    						    <input name="Catégorie" type="text">
    						  </td>
    						 </tr>
    						 <tr>
    					     <td>
    						     <a href="ajouter.html"><img src="précédent1.jpg" width="80" height="80"></a>
    						 </td>
    						 <td>
    						 <center>
    						 <a href="admini.html"><img src="accueil.jpg" width="80" height="80"></a>
    						 </center>
    						 </td>
    						<td>
     
    						 <button type="button6"><img src="valider.jpg" width="100" height="50"></button><br>
    						</td>
    					</tr>
    			</table></center>
    					 </td></center>
    					<td>
    					</td>
    				</center></tr>
    			</table></center>
    			</form>
    					 </td></center>
    					<td>
    					</td>
    				</center></tr>
    			</table></center>
     
    		</body>
    </html>
    et merci svp sauvez-moi

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Hello

    D'ou sort la variable $result à la ligne#30 ?

    Tu as vérifié les messages d'erreur de mysql ?

    Ta classe de connection utilise les fonction mysql_* qui sont dépréciées aujourd'hui. De plus PHP possède déjà une classe de connection.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 103
    Points : 120
    Points
    120
    Par défaut
    Salut babamama,

    après ta ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result->executerQuery($sql);
    il faudrait que tu remplaces par (pendant tes tests):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result->executerQuery($sql) or die(mysql_error());
    comme ça tu auras l'erreur sql (si c'est une erreur sql, je n'ai pas trop regardé ton code encore).
    Tu peux également afficher ta requête avec un simple echo et la tester dans un phpmyadmin directement (afin de savoir si le problème vien de la requête ou d'ailleurs).

    Tiens nous au courant

    EDIT: désolé benjamin je devais être en train de répondre quand tu l'as fait.
    Perso les mysql_* je trouve pas ça trop grave le tout ça serait d'avoir un code indenté... plus lisible.
    Et oui le $result semble sortir de nul part... perso je vote (pense) qu'il s'agit d'un objet non crée provenant d'une classe de la page connexion.php

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Perso les mysql_* je trouve pas ça trop grave le tout ça serait d'avoir un code indenté... plus lisible.
    Ctrl + Shift + F sous Eclipse PDT.

  5. #5
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    ça sent la POO pas comprise tout ça.

    Remarques :
    • variable avec accent = beurk
    • mysql_* = beurk (PDO en objet ou au moins mysqli_* en procédural)
    • $result sort de nulle part (même pas de connexion.php dont nous avons le code, illisible)
    • alt + maj + F dans Netbeans
    Je suis fervent utilisateur de PHP et de jQuery.
    Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur pour envoyer l'URL de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc…

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2007
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2007
    Messages : 103
    Points : 120
    Points
    120
    Par défaut
    Je suis d'accord.

    Je l'avais dit .... je n'avais pas regardé le code, et il est vrai qu'il manque quelques notions ... et pas qu'en POO, mais en "interaction" base de données

Discussions similaires

  1. Réponses: 9
    Dernier message: 13/10/2005, 18h24
  2. Réponses: 8
    Dernier message: 11/05/2005, 14h48
  3. Insertion multiple à base de sous requête SELECT
    Par drinkmilk dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/04/2005, 16h34
  4. [ADO.NET] Problème avec Insert dans base de données
    Par mpascolo dans le forum Accès aux données
    Réponses: 9
    Dernier message: 24/01/2005, 09h36
  5. PB date lors d'une insertion en Base.
    Par NATHW dans le forum Langage SQL
    Réponses: 4
    Dernier message: 09/09/2004, 17h53

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