Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1367 connectés 

  FORUM HardWare.fr
  Programmation

  [ Newbie en PHP/MySQL ] Faire un formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ Newbie en PHP/MySQL ] Faire un formulaire

n°101520
Pinzo
Vorsprung durch technik
Posté le 17-02-2002 à 19:33:34  profilanswer
 

Voilà, j'ai crée ma table avec mon contenu et tout, ca s'affiche sur ma page, ok.
 
Maintenant je voudrais, via un formulaire simple, ajouter des infos à la base.
 
Vous avez un formulaire type à me proposer ??
 
Il y a deux champs à ajouter ( "ID" et "infos" ) et il faudrait que après validation, il y aie une page de confirmation.

 

[jfdsdjhfuetppo]--Message édité par Pinzo--[/jfdsdjhfuetppo]


---------------
“I'll thank you very much.”
mood
Publicité
Posté le 17-02-2002 à 19:33:34  profilanswer
 

n°101526
Pinzo
Vorsprung durch technik
Posté le 17-02-2002 à 19:51:48  profilanswer
 

UP ca urge. J'ai un modèle de formulaire mais il passe par un ajout_verif.php pour la vérification.
 
C'est possible de faire sans ?


---------------
“I'll thank you very much.”
n°101532
deathsharp
Posté le 17-02-2002 à 20:08:10  profilanswer
 

tu utilise les requetes sql pour ajouter

 

[jfdsdjhfuetppo]--Message édité par deathsharp--[/jfdsdjhfuetppo]


---------------
What butter and whiskey won't cure, there is no cure for.
n°101535
Pinzo
Vorsprung durch technik
Posté le 17-02-2002 à 20:13:55  profilanswer
 

Ok, mais explique-moi ca plus clairement, je débute totalement. :)


---------------
“I'll thank you very much.”
n°101543
bjbebert
Posté le 17-02-2002 à 20:35:58  profilanswer
 

Dans la page de réception du formulaire, tu as des variables correspondant aux champs du formulaire. Si ces champs s'appellent ID et infos dans le formulaire, tu auras des variables $ID et $infos. Suffit de les traiter dans ton formulaire et de contruire la requete.
$requete = "INSERT INTO table(ID, infos) VALUES('$ID', '" . addslashes($infos) . "';)";
$ok = mysql_query($requete);
 
Le addslashes permet de traiter les caractères qui pourraient poser problème dans le cas d'une chaine de caractère.
 
Normalement, c'est pas très 'propre' de récupérer les champs directement en variables globales, mais pour débuter, c'est suffisant.

n°101546
Pinzo
Vorsprung durch technik
Posté le 17-02-2002 à 20:40:13  profilanswer
 

Merci mais euh... pas tout compris. Voilà mon formulaire de base généré dans Frontpage :

Code :
  1. <form method="POST" action="--WEBBOT-SELF--">
  2.   <p><input type="text" name="T1" size="45"></p>
  3.   <p><input type="submit" value="Envoyer" name="B1"><input type="reset" value="Rétablir" name="B2"></p>
  4. </form>


 
Où est-ce que j'insère ton code PHP là-dedans ?


---------------
“I'll thank you very much.”
n°101547
speedyop
Posté le 17-02-2002 à 20:43:39  profilanswer
 

dant la valeur option de <FORM> il faut mettre ta page de traitement (ca peut etre la page en cours) c'est sur cette page que tu traite les donnée

n°101549
Pinzo
Vorsprung durch technik
Posté le 17-02-2002 à 20:46:25  profilanswer
 

Ok.
 
Et ca je dois le mettre où ?

Code :
  1. $requete = "INSERT INTO table(ID, infos) VALUES('$ID', '" . addslashes($infos) . "')";
  2. $ok = mysql_query($requete);


---------------
“I'll thank you very much.”
n°101551
Pinzo
Vorsprung durch technik
Posté le 17-02-2002 à 20:49:41  profilanswer
 

Voilà ma page toute simple :

Code :
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  4. <title>Formulaire</title>
  5. </head>
  6. <body>
  7. <?
  8. $requete = "INSERT INTO table(ID, themes) VALUES('$ID', '" . addslashes($themes) . "')"; 
  9. $ok = mysql_query($requete);
  10. ?>
  11. <form method="POST" action="ajouter.php">
  12. <p><input type="themes" name="themes" size="45"></p>
  13. <p><input type="send" value="Envoyer" name="B1"><input type="reset" value="Rétablir" name="B2"></p>
  14. </form>
  15. </body>
  16. </html>


 
Est-ce que ca joue ? Bon, je teste. :)


---------------
“I'll thank you very much.”
n°101554
Plouf02
Opencloud addict!
Posté le 17-02-2002 à 20:59:23  profilanswer
 

Citation :


 
<form method="post" name="poste">
  <p> artiste:  
    <input type="text" name="artiste">
  </p>
  <p> genre:  
    <input type="text" name="genre">
  </p>
  <p> Taille:  
    <input type="text" name="taille">
  </p>
  <p> Dir:  
    <input type="text" name="dir">
  </p>
  <p>  
    <input type="submit" name="submit" value="Envoyer">
  </p>
</form>
 
<?  
if($submit)
{
require("connect.php" );
$result="INSERT INTO idtag (artiste, chanson, genre, taille, dir) VALUES ('$artiste', '$chanson', '$genre', '$taille', '$dir';)";
mysql_query($result);
mysql_close();
}
?>


Ex de truk a la con poor ajoote des infos sur mes mp3 ds la base :D

mood
Publicité
Posté le 17-02-2002 à 20:59:23  profilanswer
 

n°101556
Pinzo
Vorsprung durch technik
Posté le 17-02-2002 à 21:01:50  profilanswer
 

Ok j'essaie. :)


---------------
“I'll thank you very much.”
n°101559
Pinzo
Vorsprung durch technik
Posté le 17-02-2002 à 21:11:45  profilanswer
 

Nop elle marche pas ta solution. La tienne non plus Bjbebert ! Ou alors je sais pas m'y prendre... :sarcastic:


---------------
“I'll thank you very much.”
n°101560
Pinzo
Vorsprung durch technik
Posté le 17-02-2002 à 21:18:42  profilanswer
 

UP ? :)


---------------
“I'll thank you very much.”
n°101563
Plouf02
Opencloud addict!
Posté le 17-02-2002 à 21:24:00  profilanswer
 

Pinzo a écrit a écrit :

Nop elle marche pas ta solution. La tienne non plus Bjbebert ! Ou alors je sais pas m'y prendre... :sarcastic:  




Faut adapte a tes besoins hein! :D

n°101566
Pinzo
Vorsprung durch technik
Posté le 17-02-2002 à 21:25:48  profilanswer
 

plouf02 a écrit a écrit :

 
Faut adapte a tes besoins hein! :D  



:heink:


---------------
“I'll thank you very much.”
n°101570
Pinzo
Vorsprung durch technik
Posté le 17-02-2002 à 21:40:11  profilanswer
 

UP ? [:wam]


---------------
“I'll thank you very much.”
n°101573
speedyop
Posté le 17-02-2002 à 21:58:48  profilanswer
 

bon detaillons:
 
tu a une page plop.php ok?
 
<form method="POST" action="plop.php">
 <p><input type="text" name="T1" size="45"></p>
 <p><input type="submit" value="Envoyer" name="B1"><input type="reset" value="Rétablir" name="B2"></p>
</form>
 
juste avant ca tu met un truc genr  
 
<?
if (isset(T1))
{
$requete = "INSERT INTO table(info) VALUES('".addslashes($T1)."';)";  
$ok = mysql_query($requete);  
}
?>

n°101587
Plouf02
Opencloud addict!
Posté le 17-02-2002 à 22:46:54  profilanswer
 

Pinzo a écrit a écrit :

:heink:  




Tu l'as modifie poor ton usage?
PArce ke je te l'ai donne tel ke je l'ai moi

n°101602
bjbebert
Posté le 17-02-2002 à 23:22:12  profilanswer
 

Pinzo a écrit a écrit :

Voilà ma page toute simple :

Code :
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  4. <title>Formulaire</title>
  5. </head>
  6. <body>
  7. <?
  8. $requete = "INSERT INTO table(ID, themes) VALUES('$ID', '" . addslashes($themes) . "')"; 
  9. $ok = mysql_query($requete);
  10. ?>
  11. <form method="POST" action="ajouter.php">
  12. <p><input type="themes" name="themes" size="45"></p>
  13. <p><input type="send" value="Envoyer" name="B1"><input type="reset" value="Rétablir" name="B2"></p>
  14. </form>
  15. </body>
  16. </html>





Non, faut deux pages différentes.
T'as une page avec le formulaire, qui est posté vers une autre page (on peut tout mettre dans la même mais on va pas compliquer).
C'est dans la page de réception que tu as les variables correspondant aux champs du formulaire posté.
 
PS : c'est quoi ce type : type="themes" ??

n°101603
Pinzo
Vorsprung durch technik
Posté le 17-02-2002 à 23:25:50  profilanswer
 

Y a un gars sur les forums de ALL HTML.com qui m'a filé un code meilleur.
 
form.php

Code :
  1. <form action="insert.php" method="post">
  2. Champ 1 : <input type="text" name="champ1"><br>
  3. Champ 2 : <input type="text" name="champ2"><br>
  4. <input type="submit" value="Valider">
  5. </form>


 
insert.php

Code :
  1. <?
  2. // les champs ont-ils bien ete remplis ?  
  3. if(!empty($champ1) AND !empty($champ2))
  4. {
  5. // parametres de connexion  
  6. $sql_server="TON SERVEUR";
  7. $sql_user="TON LOGIN";
  8. $sql_pass="TON PASS";
  9. $sql_bdd="LE NOM DE TA BDD";
  10. // connexion  
  11. $db=mysql_connect($sql_server,$sql_user,$sql_pass);
  12. mysql_select_db($sql_bdd,$db);
  13. // requete  
  14. $sql="INSERT INTO ma_table (champ1,champ2) VALUES ('".$champ1."','".$champ2."')";
  15. $query=mysql_query($sql,$db) or die("Erreur !<br>".mysql_error());
  16. // affichage d'un message  
  17. echo "L'insertion s'est bien déroulée";
  18. }
  19. else
  20. {
  21. // si un des champs est vide  
  22. // on affiche un msg d'erreur  
  23. // et on re-affiche le formulaire  
  24. echo "Vous devez remplir tous les champs !";
  25. echo "<form action=\"insert.php\" method=\"post\">
  26. Champ 1 : <input type=\"text\" name=\"champ1\" value=\"".$champ1."\"><br>
  27. Champ 2 : <input type=\"text\" name=\"champ2\" value=\"".$champ2."\"><br>
  28. <input type=\"submit\" value=\"Valider\">
  29. </form>";
  30. }
  31. ?>


 
Ca marche pil poil. :p
 
-------------------------------------------
 
Cependant j'ai encore un problème. Toutes mes entrées de la base s'affichent les unes après les autres sur la même ligne et sans espace dans ma page.
 
Par ex. elles s'affichent comme ca :
 
Entree1Entree2Entree3     (puces comprises)
 
Alors que je voudrais qu'elles devraient s'afficher comme ca :
 

  • Entree1
  • Entree2
  • Entree3


Comment faire ? C'est dans ma page où elles s'affichent que je fois modifier ca ? La voici :

Code :
  1. <?
  2. $myhote="localhost";
  3. $myuser="root";
  4. $mypass="";
  5. $base_id = mysql_connect($myhote, $myuser,$mypass);
  6. if (!$base_id)
  7. {
  8. echo "Connexion à la base de données impossible !";
  9. }
  10. $mybase="testing";
  11. if (! mysql_select_db("$mybase",$base_id))
  12. {
  13. echo "Impossible de sélectionner la base de données !";
  14. }
  15. $query="SELECT * FROM MyNewsInfos";
  16. $resultat=mysql_query($query,$base_id);
  17. if (!$resultat)
  18. {
  19. echo "Impossible d'exécuter la requête !";
  20. }
  21. while ($ligne=mysql_fetch_array($resultat))
  22. {
  23. // Affichage d'une ligne
  24. echo $ligne["themes"];
  25. }
  26. ?>


 
Aidez-moi please. :)

 

[jfdsdjhfuetppo]--Message édité par Pinzo--[/jfdsdjhfuetppo]


---------------
“I'll thank you very much.”
n°101607
youdontcar​e
Posté le 17-02-2002 à 23:30:14  profilanswer
 

pas compliqué, le code html pour est  
<ul>
<li>texte</li>
<li>texte</li>
</ul>
 
donc :
 
 
echo '<ul>';
while ($ligne=mysql_fetch_array($resultat))  
{  
// Affichage d'une ligne  
echo '<li>' . $ligne["themes"] . '</li>';  
}  
echo '</ul>';

 

[jfdsdjhfuetppo]--Message édité par youdontcare--[/jfdsdjhfuetppo]

n°101608
bjbebert
Posté le 17-02-2002 à 23:31:59  profilanswer
 

Si tu as ca :
 
<html>
<head><title>Formulaire</title></head>
<body>
<form method="POST" action="RecvForm.php">
<input type="text" name="texte1" ><br>
<input type="send" value="Envoyer">
</form>
</body>
</html>
 
Dans la page RecvForm.php, tu recupere $texte1 :
 
<html>
<head><title>Reception formulaire</title></head>
<body>
valeur de texte1 : <?echo $texte1?> <br>
 
<? // insertion dans la base
require("connect.php" ); // la tu mets tes parametres de connection et de selection de la base de donnees
$requete = "INSERT INTO nom_table(nom_champ) VALUES ('" . addslashes($texte1) . "';)";
$ok = mysql_query($requete);
?>
 
requete executee : <?echo htmlspecialchars($requete)?> <br>
resultat : <?echo $ok?> <br>
<?if (! $ok) echo "Erreur durant la requete" else echo "requete OK"?>
</body>
</html>
 
Pas teste, mais ca devrait passer a peu pres.

n°101613
Pinzo
Vorsprung durch technik
Posté le 17-02-2002 à 23:40:37  profilanswer
 

youdontcare a écrit a écrit :

pas compliqué, le code html pour est  
<ul>
<li>texte</li>
<li>texte</li>
</ul>
 
donc :
 
 
echo '<ul>';
while ($ligne=mysql_fetch_array($resultat))  
{  
// Affichage d'une ligne  
echo '<li>' . $ligne["themes"] . '</li'>;  
}  
echo '</ul'>';  



J'ai une parse error à la ligne 29 :(


---------------
“I'll thank you very much.”
n°101615
Pinzo
Vorsprung durch technik
Posté le 17-02-2002 à 23:43:48  profilanswer
 

Nop, j'ai compris.
 
echo '<ul>';
while ($ligne=mysql_fetch_array($resultat))  
{  
// Affichage d'une ligne  
echo '<li>' . $ligne["themes"] . '</li>';  (le " ' " va après le " > " )
}
echo '</ul>';
 
Merci à tous ! :) :hello:

 

[jfdsdjhfuetppo]--Message édité par Pinzo--[/jfdsdjhfuetppo]


---------------
“I'll thank you very much.”
n°101616
Plouf02
Opencloud addict!
Posté le 17-02-2002 à 23:44:43  profilanswer
 

youdontcare a écrit a écrit :

 
echo '<ul>';
while ($ligne=mysql_fetch_array($resultat))  
{  
// Affichage d'une ligne  
echo '<li> . $ligne["themes"] . </li'>;  
}  
echo '</ul>';  




je pense ke c bon :o

n°101627
youdontcar​e
Posté le 17-02-2002 à 23:56:08  profilanswer
 

ouuups ... j'ai édité :D

n°101638
Pinzo
Vorsprung durch technik
Posté le 18-02-2002 à 00:29:48  profilanswer
 

C'est bon j'ai réussi. :)
Tout fonctionne à la perfection. Maintenant, place à la personnalisation de "l'environement".
 
:hello:


---------------
“I'll thank you very much.”
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [ Newbie en PHP/MySQL ] Faire un formulaire

 

Sujets relatifs
[PHP] lire le contenu d'un fichier...KILIO EST PLANTE ?!!!!!? avec MYSQL ?!!!!!!
Php Mysql + Win Xpassertion failure pour newbie
[PHP] manière légère de ne pas perdres les champs lorsque submitPHP + Mysql + Gestion DivX - DVD...
Plus de sujets relatifs à : [ Newbie en PHP/MySQL ] Faire un formulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR