begin process at 2012 05 31 04:50:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Débutants

 > 

Pb ajout dans base avec formulaire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb ajout dans base avec formulaire

mercredi 19 janvier 2005 à 10:30:38 | Pb ajout dans base avec formulaire

MHI

Salut, j'ai un petit problème j'ai un formulaire pour ajouter un article à ma base, mais cela ne fait rien, voici le code :

saisie_article.php :

<html>
<head>
<title>Saisie article</title>
</head>
<body>
<form>
Titre<BR/>
<input name="titre" type="text" size="80"/><BR/>
Auteur<BR/>
<input name="auteur" type="text" size="35"/> Date <input name="dtparu" type="text" size="20"/><BR/>
Texte<BR/>
<textarea cols="60" rows="8" tabindex="3" name="summary"></textarea><BR/>
</BR></BR></BR>
<?php
function ExecEnreg(){
$req="INSERT INTO articles(art_titre,art_auteur,art_texte) VALUES($titre,$auteur,$texte)";
mysql_query($req);
}
?>
<CENTER><input type="submit" value="Enregistrer" action="ExecEnreg"/></CENTER>
</form>
</BR></BR>
</body>
</html>


merci d'avance, ce formulaire est lancer par index.php :
<html>
<head>
<title></title>
</head>
<body>
<BR><BR>
<H1>Site en cours de construction (ne pas tenir compte du contenu ci-après, il s'agit de tests)</H1>
<BR><BR><BR><BR><BR>
<a href="saisie_article.php"> Saisie d'un article</a>

<?php
function DtEnglToDtFren($dtEngl){
 $a = date("Y", $dtEngl);
 $m = date("m", $dtEngl);
 $j = date("d", $dtEngl);
 $h = date("H", $dtEngl);
 $mn = date("i", $dtEngl);
 return (string) "$j/$m/$a $h:$mn"
}
?>

<?php
// connection à la base de donnée
@mysql_connect("localhost","becquigny","") or die("Echec de connexion au serveur");
@mysql_select_db("becquigny_db") or die("Echec lors de la selection de la base");

// Paramètrage et execution de la requête ramenant tous les articles de la table classé par date de parution (décroissant)
// Puis on parcours le résultat de la requête pour afficher chaques articles
$req="SELECT * FROM articles order by art_dtparu desc";
if ($result = mysql_query($req)){
 
 while($ligne = mysql_fetch_object($result)){
  $id = $ligne->art_id;
  $titre = $ligne->art_titre;
  $auteur = $ligne->art_auteur;
  $dtparu = $ligne->art_dtparu;
  $text = $ligne->art_texte;
  $src = $ligne->art_src;
  $dateParutFR = DtEnglToDtFren($dtparu);
  echo "<table border='1' bgcolor='#A9E29A'><TD>";
  echo "<B>$titre</B> - posté par $auteur - le $dateParutFR<BR/><HR>";
  echo "<P ALIGN=JUSTIFY>$text</P>";
  if ($src <> NULL){
   echo "<BR/><I>Tiré de : $src </I><BR/>";
  }
  echo "</TD></table><BR>";
 }
}
else{
 echo "Erreur de requête sur la base de donnée";
}
?>
</body>
</html>

 

 

mercredi 19 janvier 2005 à 10:54:06 | Re : Pb ajout dans base avec formulaire

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
Hello,

"action" est un attribut de <form> pas de'un input type=submit.

Tu dois mettre cet action="" dans ta balise <form>, et mettre comme valeur le nom de la page ou sera traite le formulaire.

Ensuite, pour executer ta fonction, il faut tester si le formulaire a ete soumis.
<input type="submit" name="submit" value="Enregistrer"/>

Ta fonction :

function ExecEnreg($titre, $auteur, $texte){
$req="INSERT INTO articles(art_titre,art_auteur,art_texte) VALUES($titre,$auteur,$texte)";
mysql_query($req);
}

Ton test :

if (isset($_POST['submit']) &&
$_POST['submit']=="Enregistrer") {
ExecEnreg(
$_POST['titre'], $_POST['auteur'], $_POST['texte'])
}

Mais tu devrais aussi tester l'existence des POST quand meme, histoire de ne pas remplir ta base d'enregistrements vides.
mercredi 19 janvier 2005 à 10:56:54 | Re : Pb ajout dans base avec formulaire

eXon

Membre Club
Réponse acceptée !
On ne peut pas appelé une fonction PHP par <input type="submit" value="Enregistrer" action="ExecEnreg"/>. Premièrement, il faudrait changé ton form par <form type="post" action="saisie_article.php">. Deuxièmement, il faudrait rajouté un champs invisible pour savoir si le formulaire est envoyé: <input type="hidden" name="send" value="1">. Troisèmement, il faut que tu rajoute au début du fichier la gestion si l'on a le formulaire:
if(isset($_POST['send']))
{
    ;// Appel des fonctions pour la gestion des formulaires
}
Quatrièmement, tu mets le formulaire dans le else du premier if. Cinquièmement, tu devrais utilisé les variables $_POST['var'] pour les champs dans le formulaire à moins que les variables globales de PHP soient activé, ce qui n'est pas fait par défaut.

Il y a surment des choses que tu ne comprend pas dans ce que j'ai dit mais c'est beaucoup de la base. Je te conseil de lire les tutoriaux sur www.phpdebutant.org ils te permetteront d'avoir une bonne base en PHP et tu devrais être capable de corrigé tes erreurs.

Bonne chance

----------------
eXon
http://www.lookstrike.com
mercredi 19 janvier 2005 à 11:35:35 | Re : Pb ajout dans base avec formulaire

MHI

je te remercie, et il est vrai que je n'ai pas compris grans chose, je vais donc aller voir le site que tu m'as conseillé.

encore mercie


Cette discussion est classée dans : ligne, base, date, art, dtengl


Répondre à ce message

Sujets en rapport avec ce message

Base de donné et date [ par overider ] salut mon projet:je réalise actuellement une application de gestion d'agendadonc a un moment je fais un truc du style $vis_agen=mysql_query("select * nl2br() [ par westsider ] bonjour,j'utilise la fonction nl2br() pour ajouter des avant les retour en ligne lors de l'insertion dans la base, ce aui fait aue dans ma base j'ai Date probleme [ par g0belin ] Ben voila en fait je veux faire un agenda...je veux afficher seulement les entree dans la base pour le jour courant...MAIS sa marche PASsa m'affiche t Datetime et MySQL [ par DarkSchneider ] Bonjour, Encore un problème, un de plus.Cette fois-ci, c'est les dates.Dans ma base MySQL, j'ai crée une table avec divers champs, dont un se nomm Création d'une base de contenus en ligne [ par cudipate ] Bonjour,je ne suis pas développeur ni débutant en php ou en quelque code que ce soit. Je suis juste très intéressé par le php et par ses fonctionnalit textearea [ par Cil20 ] BonjourJ'ai un formulaire avec un textearea sur plusieurs ligne. J'enregistre le message dans une base SQL. Dans la base je retrouve les retour à la l une ligne d'entete pour chaque serie de date [ par bricedu78 ] Salutation,j'explique mon problem, j'ai un tableau dans lequelles j'affiche un grand nombre de liens classé par date descendante.Je voudrais qu'une li Pb d'INSERT , aucune erreur retournée ... [ par Blasfem ] Salut à tous, J'ai un souci, je suis en trin de me former sur le PHP et ma page d'ajout ne fonctionne pas. Pourtant le code semble correct . ? inclu Pb de date [ par MHI ] j'inscrit une date dans ma base SQL avec la fonction time(); Et pour l'afficher en format français je me susi fait une fonction : function DtEnglToDt PHP / ODBC (base access) : Pb de date ! [ par Alextasis ] AlexVoilà j'ai un ptit problème et ce serait cool si qq un pouvait me renseigner !voilà j'ai une base de donnée ACCESS tout ce qu'il y a de plus simpl


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales