Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/06/2007, 10h44   #1
En attente de confirmation mail
 
Inscription : septembre 2006
Messages : 64
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 64
Points : 12
Points : 12
Par défaut problème pour vider un formulaire

Bonjour,
Je voudrais balancer des infos d'une table à une autre.
Pour cela je ré affiche les infos de la première dans un formulaire puis je fais doit cliquer sur 'archiver'.
Comme il y a 2 requetes, (un INSERT INTO table2 et un DELETE FROM table1), le formulaire se vide après un deuxième clic sur 'archiver'. Cependant l'InSERT et le DELETE ont bien été effectué après un seul clic. J'aimerai que le formulaire se vide après un seul clic. Comment faire ?
Est il possible de placer deux requêtes dans une seule variable ?
Voici un exemple de ce que j'essaye de faire mais ca ne fonctionne pas :
Code :
1
2
3
 
$sql = "INSERT INTO table2(...) VALUES (...), DELETE FROM table1 WHERE id=$id";
mysql_query($sql)
Y aurait il un problème de syntaxe ?
Comment puis je faire ?
Merci d'avance.
jomannix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 10h49   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
il faut mettre un ; entre deux requêtes SQL pour que MySQL les effectue a la suite. Mais dans tous les cas je pense qu'il est plus propre de faire deux mysql_query() consécutifs, ca te permet de mieux gérer les erreurs!
Ensuite je ne comprends pas bien ton probleme de formulaire qui ne se vide pas, il faudrait que tu donnes le code qui remplit le formulaire pour qu'on comprenne mieux.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 10h50   #3
Membre habitué
 
Avatar de jolatouf
 
Inscription : novembre 2004
Messages : 165
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 165
Points : 135
Points : 135
bonjour,

Pour le vidage de ton formulaire, une fois que tu as fait ton insert et ton délete tu peux recharger ton formulaire comme il est remplie via la table 1 qui est vidé (delete) tu auras un formulaire vide (enfin si j'ai bien suivie).
__________________
visitez le site web des gîtes de France en basse Normandie à Hotot-en-Auge dans le Calvados http://www.hotot.fr
jolatouf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 10h50   #4
Membre éclairé
 
Avatar de BornBanane
 
Homme
Ingénieur développement logiciels
Inscription : mars 2007
Messages : 274
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mars 2007
Messages : 274
Points : 350
Points : 350
De manière générale les requête SQL sont délimiter par des ";".
Donc pour faire deux requête SQL avec la même variable tu fais :
Code :
1
2
$sql = "INSERT INTO table2(...) VALUES (...); DELETE FROM table1 WHERE id=$id;"
mysql_query($sql)
BornBanane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 11h06   #5
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
: Puis-je exécuter plusieurs requêtes SQL en un seul mysql_query() ?
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 14h04   #6
En attente de confirmation mail
 
Inscription : septembre 2006
Messages : 64
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 64
Points : 12
Points : 12
En fait je clique deux fois pour les raisons suivantes :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
 
<table>
...
 
<!-- Il exécute la 1ère requête d'envoi dans la table2 -->
<td><input name="submit" type='submit' value='ARCHIVER' /></td>
</tr>
<!-- Il exécute la 2ème requête de delete dans la table2 -->
<input type="hidden" name="id" value="ARCHIVER"<? echo $id; ?> />
 
</table>
Y a t'il une autre manière de procéder ?
Merci d'avance
jomannix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 14h06   #7
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
ben pourquoi tu ne fais pas le delete juste apres l'insert dans la table 2? en faisant deux mysql_query() de suite dans ton code
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 14h26   #8
En attente de confirmation mail
 
Inscription : septembre 2006
Messages : 64
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 64
Points : 12
Points : 12
OK, en faisant comme tu dis ca fonctionne nickel.
Je te remercie.
J'ai viré cette ligne la :

Code :
1
2
3
 
<!-- Il exécute la 2ème requête de delete dans la table2 -->
<input type="hidden" name="id" value="ARCHIVER"<? echo $id; ?> />
et il me fait parfaitement l'INSERT et le DELETE là ou il faut.

Dernier problème, il ne me vide toujours pas le formulaire
N'y a t'il pas une autre manière que de recherger le formulaire, ca me semble être une solution d'apoint, non ?
jomannix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 14h35   #9
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
mais ca veut dire quoi vider ton formulaire?
quand tu appuies sur archiver, tu fais tes requetes et ca recharge ta page.
donc si le formulaire est toujours rempli c'est que c'est toi qui le remplis!
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 14h40   #10
En attente de confirmation mail
 
Inscription : septembre 2006
Messages : 64
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 64
Points : 12
Points : 12
Mon formulaire est rempli a la base de cette manière :
(exemple avec le champ 'prénom')

Code :
1
2
3
4
5
6
7
8
9
10
11
 
<tr>
<td>Prenom :</td>
<td><input type="text" name="prenom" size="50" value="<? echo $prenom; ?>"></td></tr>
 
<?PHP
...
if(isset($_POST['prenom']))      $prenom=$_POST['prenom'];
else      $prenom="";
...
?>
En cliquant sur 'archiver' j'aimerai que mon formulaire soit vide (tout simplement), hors ce n'est pas le cas ...
jomannix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 14h42   #11
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Et bien il faut que tu ajoutes dans tes conditions qui remplissent les valeurs par défaut de ton formulaire, la condition qui serait "si le bouton pressé est "archiver" alors je laisse mes variables vides"
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 14h43   #12
Rédacteur/Modérateur
 
Avatar de Deepin
 
Homme Deepin
Ingénieur - Chef de projet Modélisation/Simulation
Inscription : avril 2004
Messages : 1 341
Détails du profil
Informations personnelles :
Nom : Homme Deepin
Localisation : Ile Maurice

Informations professionnelles :
Activité : Ingénieur - Chef de projet Modélisation/Simulation
Secteur : Industrie

Informations forums :
Inscription : avril 2004
Messages : 1 341
Points : 7 085
Points : 7 085
Envoyer un message via Skype™ à Deepin
salut,
utilises un peu de javascript autrement. tu as la fonction reset()...
document.monformulaire.reset();
Deepin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2007, 15h16   #13
En attente de confirmation mail
 
Inscription : septembre 2006
Messages : 64
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 64
Points : 12
Points : 12
Laisser tomber, ca marche maintenant.
j'avais juste oublié un header à la fin du code pour recharger ma page, ca ne risquait donc pas de me faire une actualisation de ma base
Sorry et merci de votre aide.
jomannix est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h34.


 
 
 
 
Partenaires

Hébergement Web