Soutenez-nous
Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 7 sur 7
  1. #1
    Membre du Club
    Inscrit en
    janvier 2009
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : janvier 2009
    Messages : 113
    Points : 41
    Points
    41

    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 :
    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 :
    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 Vincent
    Inscrit en
    juillet 2005
    Messages
    19 886
    Détails du profil
    Informations personnelles :
    Nom : Homme Vincent

    Informations forums :
    Inscription : juillet 2005
    Messages : 19 886
    Points : 25 936
    Points
    25 936

    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.

  3. #3
    Membre du Club
    Inscrit en
    janvier 2009
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : janvier 2009
    Messages : 113
    Points : 41
    Points
    41

    Par défaut

    ok merci
    Mais je n'y arrive pas auriez vous la syntaxe ?

  4. #4
    Modérateur
    Avatar de Vil'Coyote
    Profil pro
    Développeur Web
    Inscrit en
    février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : février 2008
    Messages : 3 900
    Points : 5 111
    Points
    5 111

    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.

  5. #5
    Membre du Club
    Inscrit en
    janvier 2009
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : janvier 2009
    Messages : 113
    Points : 41
    Points
    41

    Par défaut

    oui mais tous cela ne me dis pas comment utiliser un bouton submit
    Auriez vous un exemple concret svp

  6. #6
    Invité de passage
    Inscrit en
    avril 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 3
    Points : 1
    Points
    1

    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 :
    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 : 107
    Points
    107

    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 :
      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 :
      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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •