Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 16/06/2009, 20h24   #1
gueguenk
Nouveau Membre du Club
 
Inscription : janvier 2009
Messages : 99
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 99
Points : 35
Points : 35
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
gueguenk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2009, 21h11   #2
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 508
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 508
Points : 21 344
Points : 21 344
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.
sabotage est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2009, 10h02   #3
gueguenk
Nouveau Membre du Club
 
Inscription : janvier 2009
Messages : 99
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 99
Points : 35
Points : 35
ok merci
Mais je n'y arrive pas auriez vous la syntaxe ?
gueguenk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2009, 11h51   #4
Vil'Coyote
Modérateur
 
Avatar de Vil'Coyote
 
Développeur Web
Inscription : février 2008
Messages : 3 701
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2008
Messages : 3 701
Points : 5 383
Points : 5 383
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.
Vil'Coyote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2009, 15h08   #5
gueguenk
Nouveau Membre du Club
 
Inscription : janvier 2009
Messages : 99
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 99
Points : 35
Points : 35
oui mais tous cela ne me dis pas comment utiliser un bouton submit
Auriez vous un exemple concret svp
gueguenk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2009, 11h44   #6
Ashjre
Invité de passage
 
Inscription : avril 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 3
Points : 1
Points : 1
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.
Ashjre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2009, 15h44   #7
sigap
Membre habitué
 
Avatar de sigap
 
Inscription : avril 2002
Messages : 113
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 113
Points : 107
Points : 107
Envoyer un message via Yahoo à sigap
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
sigap est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h30.


 
 
 
 
Partenaires

Hébergement Web