pb avec insertion dans base

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : pb avec insertion dans base

Re: pb avec insertion dans base

par sebcap26 » 03 juin 2010, 11:22

Déja une petite remarque :
method=post
type=text name=nomL
C'est pas bien :non: il vaut mieux mettre des guillemets (ca ne porte pas à conséquence sur ton problème mais ca m'arrache les yeux quand je voit des trucs comme ca :D ).

Ensuite, il serait bien qu'on puisse voir la page complète, pas seulement les deux petits bouts. Sans connaître sa structure, impossible de t'aider.

PS : une autre petite remarque :
if (isset($_POST['submit3'])) {
echo 'insertion reussie';
Comment tu peux savoir si l'insertion est réussie avant d'avoir essayé de l'insérer :roll:

Re: pb avec insertion dans base

par YaunBeug » 20 mai 2010, 15:02

En fait comme c'est pas clair du tout ce que je raconte, je vais faire ca différement. Le code qui suit est sur la meme page page1.php

//partie HTML
<form action="page1.php"  onsubmit="return valider()" method=post name="formul">

<br><BR>

<H1> Add a organism: </H1>

<label>Latin name :</label>

<input type=text name=nomL>
<input type="submit" name="submit3" value="submit">
//partie PHP
if (isset($_POST['submit3'])) {
echo 'insertion reussie';
$sql ="INSERT INTO organism (NomLatin,NomCourant,Type,Taxonomie,Date_Ajout_Org)

		VALUES ('$_POST[nomL]','$_POST[nomC]','$_POST[type]','$_POST[tax]','$_POST[date]')";

		$query2 = mysql_query($sql);

Bon voila en gros un exemple qui fonctionne bien, je voudrais juste que l insertion laisse la page courante inchangé.
C est a dire que apres l'insertion, on soit sur la même page qu'au début et que l'on voit encore la boite de saisie " nom latin".
Actuellement, l'insertion écrase le formulaire.
On ne voit qu'une page ou ya marqué "insertion reussie"

pb avec insertion dans base

par YaunBeug » 20 mai 2010, 14:42

Bonjour,

Je me demande un ptit truc, j'ai une page php en relation avec une bdd. en fait, il y en avait plusieurs à l'origine que jai regrouper dans la même page.

Par exemple, imaginons que sur la premiere page on choisit le nom d'un muscien dans une menu déroulant( menu remplit par la bdd)
Si le musicien n est pas dans la liste on choisit "autre" dans le menu, et on tombe sur une page pr rajouter un nom de musicien.
Si il existe dans la liste,on appuie sur valider. On arrive sur la deuxieme page on choisit un instruement a ajouter pr ce musicien
En utilisant les if (isset($_POST['submit3'])) je m'affranchi.s de créer e rplusieurs pages.
En fait, je voudrais que tout se passe dans la même page. Je veux garder toutes les informations de la page tant que je suis sur une page. En gros toutes les étapes s affiche les une apres les autre. Jai donc regrouper ces 3 pages en une seul mais l
insertion ds la base a pour effet de me renvoyer la meme page mais vide.

Le probleme c est que si le musicien est pas dans la liste et que je le rajoute , au moment de faire les 'insert into' toute la page est écrasé. Je perd donc la possiblité de faire mon action rajouter un instrument.
A chque fois que je fais une insertion dans la base, du genre

if (isset($_POST['submit3'])) {
$sql ="INSERT INTO organism (NomLatin,NomCourant,Type,Taxonomie,Date_Ajout_Org)

VALUES ('$_POST[nomL]','$_POST[nomC]','$_POST[type]','$_POST[tax]','$_POST[date]')";

$query2 = mysql_query($sql);



ca fonctionne mais je souhaiterai rester exactement sur la meme page avec les informations exactement inchangés. Alors que dans ce cas la , ben ca me renvoie une page vide..
Comment faire pour que qd j appui sur le bouton valider ( celui qui aura pr conséquence de remplir la base) la page sur laquelle je suis reste inchangé
???

ps: jai illustré mon probleme avec des musiciens, mais ce n'est pas le theme de ma base, c juste pr facilieter les choses :p