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 :

Ajouter un enregistrement dans une base de donnée mysql sur click bouton


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 128
    Points : 79
    Points
    79
    Par défaut Ajouter un enregistrement dans une base de donnée mysql sur click bouton
    Bonjour étant novice en php j'ai du mal a comprendre son foncionnement

    Ce que je veut est tres simple :
    Ajouter un enregistrement dans une base de donnée mysql sur click bouton

    Voici ma fonction php qui se situe en haut de ma page 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
     
    <?PHP
    function ajoutnews1()
    {
    mysql_connect("localhost", "root","") or die("Echec de connexion au serveur.");; // Connexion à MySQL
    mysql_select_db("cfdeco") or die("Echec de sélection de la base.");; // Sélection de la base coursphp
     
    echo('bla');
    if (isset($_POST['titren1'])) // Si la variable existe
    {	
    	if (isset($_POST['daten1'])) // Si la variable existe
    	{
    		if (isset($_POST['descn1'])) // Si la variable existe
    		{
    			$titre = $_POST('titren1');
    			$date = $_POST('daten1');
    			$desc = $_POST('descn1');
    			echo($titre);
    			mysql_query("insert into news (titre_news,texte_news,date_news) values('$titre','$date','$desc')"); // Requête SQL
    			mysql_close();
     
    		}
    	}
    }
     
     
    }
     
    ?>

    Et voici ce qui se trouve sur ma page en elle meme un peu plus pas donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    					<p>Titre : </br><input type="text" name="titren1"/></p>
    					<p>Date : </br><input type="text" name="daten1" /><p>
    					<p>News : </br><textarea name="descn1" id="descn1" rows="10"; cols="50";></textarea><p>
    					<input type="submit" value="Valider" onclick="="<?php ajoutnews1(); ?>"/>
    Donc ce que je n'arive pas comprendre c'est le systeme d'appel par click ainsi que l'ajout d'un enregistrement via ysql

    Merci d'avance

  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
    onclick est un evenement Javascript declenchant une fonction Javascript.

    Avec XMLHttpRequest on peut faire la transition Javascript<->PHP mais si tu es debutant je te conseille plutot de commencer par du traditionnel :
    un formulaire qui pointe vers ta page de traitement en PHP et un bouton submit.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 128
    Points : 79
    Points
    79
    Par défaut
    ok merci
    Mais je n'y arrive pas auriez vous la syntaxe ?

  4. #4
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    Salut,
    un petit tour par pour XMLHttpRequest sinon je suis d'accord avec sabotage, si tu débute, commence par un submit appelant une page php qui va faire ton traitement.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 128
    Points : 79
    Points
    79
    Par défaut
    oui mais tous cela ne me dis pas comment utiliser un bouton submit
    Auriez vous un exemple concret svp

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Pour un débutant en PHP et HTML, je préfère te donner la réponse.
    Je considère qu'il est plus simple de partir de la réponse et de faire le chemin inverse, c'est à dire d'étudier un code pondu et de s'exercer à le reproduire.

    A titre exceptionnel bien entendu. Je comprends bien que si tout le monde donnait la réponse à la moindre question, la réflexion / créativité / auto-compétence n'aurait plus de sens...

    Ce que je te conseil, c'est de te procurer un bon bouquin PHP. Si tu ne souhaites pas dépenser d'argent, le meilleur bouquin reste le net.
    Voir ce site.

    Étudie le code ci-dessous, je ne sais pas s'il est exacte, mais à mon sens je n'ai pas commis d'erreurs.

    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
    <?php
    $info = '';
     
    // Si le formulaire a été envoyé
    if (isset ($_POST['valider']))
    {
    	$titre = $_POST['titren1'];
    	$date  = $_POST['daten1'];
    	$desc  = $_POST['descn1'];
     
    	// Si l'un des champs est vide, lancer une erreur
    	if (empty ($titre) || empty($date) || empty($desc))
    		$info = 'Veuillez renseigner tous les champs';
    	else
    	{
    		// Connexion à la bdd
    		mysql_connect("localhost", "root","") or die("Echec de connexion au serveur.");; // Connexion à MySQL
    		mysql_select_db("cfdeco") or die("Echec de sélection de la base.");; // Sélection de la base coursphp
     
    		// Insertion dans la bdd
    		$query = "insert into news (titre_news,texte_news,date_news) values('$titre','$date','$desc')";
     
    		if (mysql_query($query))
    			$info = 'La news a été créé avec succès';
    		else
    			$info = 'Erreur lors de la création de la news';
     
    		//mysql_close();
    	}
    }
     
    // Les 4 lignes ci-dessous permettent de tracer le contenu de $_POST et la requête d'insert
    // A supprimer une fois que tout est ok
    echo '<pre>';
    print_r ($_POST);
    echo '</pre>';
    echo $query;
    ?>
     
    <form method="post" enctype="multipart/form-data">
    	<p>Titre : <br /><input type="text" name="titren1"/></p>
    	<p>Date : <br /><input type="text" name="daten1" /><p>
    	<p>News : <br /><textarea name="descn1" id="descn1" rows="10" cols="50"></textarea><p>
    	<input name="valider" type="submit" value="Valider" />
    	<?=$error?>
    </form>
    Attention à protéger des caractères spéciaux SQL + balises HTML + javascript (contre le hack de ta bdd et autre).
    Voir du côté des fonctions php strip_tags + html_entity_decode.

    La plupart des formulaires présents sur le net ne sont pas protégés et récupérer le contenu de toute une bdd est très simple pour une personne qui sait comment s'y prendre.

  7. #7
    Membre habitué Avatar de sigap
    Inscrit en
    Avril 2002
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 113
    Points : 166
    Points
    166
    Par défaut
    Je te suggere d'utiliser les methodes simples pour debuter en PHP. Pour le cas proposé,
    1. La Page où se trouve le formulaire de données (formulaire.htlm)
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      <form action="traitement.php" method="post" enctype="multipart/form-data">
      	<p>Titre : <br /><input type="text" name="titren1"/></p>
      	<p>Date : <br /><input type="text" name="daten1" /><p>
      	<p>News : <br /><textarea name="descn1" id="descn1" rows="10" cols="50"></textarea><p>
      	<input name="valider" type="submit" value="Valider" />
      </form>
    2. La page où tu traites les donnés saisies dans le formulaire (traitement.php)
      Ceci suppose que tu as créé la base de données "cfdeco" et la table "news" selon la structure de données ici definie.
      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
      <?php
      $info = '';
       
      if (isset ($_POST['valider']))
      {
      	$titre = $_POST['titren1'];
      	$date  = $_POST['daten1'];
      	$desc  = $_POST['descn1'];
       
      	// Si l'un des champs est vide, lancer une erreur
      	if (empty ($titre) || empty($date) || empty($desc))
      		$info = 'Veuillez renseigner tous les champs';
      	else
      	{
      		// Connexion à la bdd
      		mysql_connect("localhost", "root","") or die("Echec de connexion au serveur.");; // Connexion à MySQL
      		mysql_select_db("cfdeco") or die("Echec de sélection de la base.");; // Sélection de la base coursphp
       
      		// Insertion dans la bdd
      		$query = "insert into news (titre_news,texte_news,date_news) values('$titre','$date','$desc')";
       
      		if (mysql_query($query))
      			$info = 'La news a été créé avec succès';
      		else
      			$info = 'Erreur lors de la création de la news';
       
      		//mysql_close();
      	}
      }
       
      ?>


    Avec ca, je pense qu'il est plus evident que tu comprennes comment fonctionne l'interaction formulaire/base de données a travers php.

    Mais pour débuter pour de vrai, il faut commencer par les tutoriels, il y en a tellement. Par exemple http://php.developpez.com/cours/
    Je suis ce que je suis grace à ce que nous sommes tous

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

Discussions similaires

  1. MàJ/ajout d'un enregistrement dans une base de données mySQL
    Par BMT_Benoît dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/08/2007, 08h02
  2. Réponses: 10
    Dernier message: 17/03/2007, 14h05
  3. enregistrer dans une base de données
    Par liverbird dans le forum C++Builder
    Réponses: 33
    Dernier message: 12/07/2006, 19h50
  4. [MySQL] Enregistrer dans une base de données à partir d'une liste déroulante
    Par snakejl dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 17/05/2006, 16h32
  5. inscription via le web et enregistrement dans une base de données
    Par titoenis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 17/05/2006, 09h20

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