begin process at 2012 05 30 14:30:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

écrire dans une base de données mysql


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

écrire dans une base de données mysql

mercredi 17 mars 2010 à 14:06:58 | écrire dans une base de données mysql

andlauer

Bonjour,

je travaille avec une base de données Mysql sur une plateforme Windows 2000.
J'ai écris un script en php qui permet d'insérer ou de modifier des données dans ladite base. Mon pb est qu'il s'exécute via un navigateur (Firefox, IE, Google ou autre) et que bien évidemment si l'utilisateur rafraichit via la Touche F5, il double la saisie dans la BDD, sans même sans rendre compte.
Je ne vois pas comment m'en sortir.
Toute idée serait la bienvenue.
Merci.
mercredi 17 mars 2010 à 17:22:20 | Re : écrire dans une base de données mysql

mailliam

Hello,
Fais un copier-coller de ton script car la c'est po trop possible de t'aider comme ca..
A++
jeudi 18 mars 2010 à 12:35:27 | Re : écrire dans une base de données mysql

JulSoft

Membre Club
Perso j'utilise les sessions pour eviter ce genre de choses. En gros:

Code PHP :
<?php
...
if(!isset($_SESSION['mon_action'])){
    $_SESSION['mon_action'] = 1;
    faireMonAction(); // code de ton action, genre enregistrement mysql etc...
}
else
{
    echo 'Action deja effectuee!';
}
...
?>


Voili ;-)
jeudi 18 mars 2010 à 14:12:15 | Re : écrire dans une base de données mysql

andlauer

Bonjour, merci d'avoir pris le temps de me lire

j'envoie un certains nb de valeur par POST dans un fichier dont voici une partie du code :

$ok = strlen(trim($_POST['nom']));
if ($ok > 2 )
{
$ok = strlen(trim($_POST['adresse']));
if ($ok > 2 )
{
$ok = strlen(trim($_POST['cp']));
if ( (is_numeric($_POST['cp']) and ($ok > 0 )and ($ok < 6)) )
{
$dates = date("d-m-Y");
$heures = date("H:i");
$query = "insert into clients (regie, nom, nom2, tph1, tph2, email, adresse, cp, commune, activite, vendeur, secteur, potentiel ) values
(\"{$_POST['tregie']}\", \"{$_POST['nom']}\", \"{$_POST['nom2']}\", \"{$_POST['tph1']}\", \"{$_POST['tph2']}\", \"{$_POST['email']}\",
\"{$_POST['adresse']}\", \"{$_POST['cp']}\", \"{$_POST['commune']}\", \"{$_POST['act']}\", \"{$_POST['vend']}\", \"{$_POST['sec']}\", \"{$_POST['pot']}\" ) ";
$result = mysql_query($query) or die ("Création dans la table clients impossible");


Si j'ai bien compris ISSET sert à tester l'existence d'un variable ? peux tu m'en dire plus concernant l'utilisation ?

Merci
jeudi 18 mars 2010 à 14:17:04 | Re : écrire dans une base de données mysql

JulSoft

Membre Club
En gros $_SESSION est une variable (un tableau) qui permet de passer des valeurs d'une page à l'autre (les puristes vont me lyncher pour une telle simplification, mais en gros ça sert à ça).

isset() sert comme tu l'as dit à tester l'existence d'une variable. Dans notre cas, on vérifie que l'indice 'mon_action' n'existe pas dans la variable de session. Si il n'existe pas, alors on le crée (et du coup il existe ensuite tant que la session "vit").

pour plus d'infos: http://php.net/manual/fr/features.sessions.php
jeudi 18 mars 2010 à 14:24:18 | Re : écrire dans une base de données mysql

andlauer

Ok, je vais essayer de me débrouiller avec ca.
Merci beaucoup
jeudi 18 mars 2010 à 16:18:52 | Re : écrire dans une base de données mysql

andlauer

Je viens de me palucher un peu la doc sur ISSET().
Je teste l'existence de la variable newclient
avec :
if(!isset($_POST['newclient']))
{

cette variable est créée dans le formulaire de saisie de l'écran précédent :
<input type='hidden' name='newclient' value='OUI' >
et est envoyé par post.
Je la détruit par :
{
unset( $_POST['newclient'] );

après l'avoir testé.
Mon problème maintenant est que maintenant il détecte systématiquement l'existence de newclient (même après le unset() )et donc ne créée plus rien.
Visiblement j'ai pas compris quelque chose !!!
jeudi 18 mars 2010 à 17:30:20 | Re : écrire dans une base de données mysql

andlauer

Suite à dernières modif, j'arrive à ceci : après mon insert, j'incrémente
$query = "insert into clients (regie, nom, nom2, tph1, tph2, email, adresse, cp, commune, activite, vendeur, secteur, potentiel ) values
(\"{$_POST['tregie']}\", \"{$_POST['nom']}\", \"{$_POST['nom2']}\", \"{$_POST['tph1']}\", \"{$_POST['tph2']}\", \"{$_POST['email']}\",
\"{$_POST['adresse']}\", \"{$_POST['cp']}\", \"{$_POST['commune']}\", \"{$_POST['act']}\", \"{$_POST['vend']}\", \"{$_POST['sec']}\", \"{$_POST['pot']}\" ) ";
$result = mysql_query($query) or die ("Création dans la table clients impossible");

$_SESSION['newclient'] = 1;


Normalement si l'on utilise la touche F5 qui va renvoyer les POST, il devrait trouver mon
$_SESSION['newclient'] dont je teste l'existence par
if(!isset($_SESSION['newclient']))
et donc passer à mon else.
Or il trouve bien $_SESSION['newclient'] mais
ne passe pas dans le else et renseigne ma BDD


Cette discussion est classée dans : base, écrire, données, mysql


Répondre à ce message

Sujets en rapport avec ce message

Créer une base de données MySQL avec PHP [ par dannywilde ] J'essaye de créer la base de données dans un script PHP mais à chaque fois que j'essaye, le PC mouline pendant une durée illimitée et n'affiche rien m PB: insertion des données saisies dans base mysql [ par spritzz ] je suis sous easyphp 1.7(php 4.3.3) en localhost, et j'ai un problème pour insérer des données dans ma base mysql, ca ne fonctionne pas si je laisse m Afficher des données depuis une base Mysql [ par svince ] Bonjour ! Je souhaiterai savoir comment faire pour afficher toutes les données d'une base sans critère dans un tableau.Merci d'être assez précis car j Vérifier des données dans une base de données MySQL [ par svince ] Bonjour, J'ai une base de données nommé annuaire avec : un champ idun champ nomd'autres champs (prenom, adresse...)Je souhaite que l'internaute tape s Exporter une grande Base de Données mysql [ par ala_daly ] Salut tout, je veux savoir comment faire pour exporter une BD de grande taille (à peu près 9Mo) depuis un serveur distant, j'ai essayé mais il ya touj Récupération de données dans la base mysql [ par krazylo ] Bonjour,Je suis débutant en php , mysql et je voulais savoir comment est-il possible de récuperer des données dans une base mysql pour les afficher su problème de recherche sur base de données mysql [ par Xini28 ] Lorsque je fais une recherche dans une base de données mysql, il s'affiche "Resource id #3" au lieu de ce que je recherche. Quelqu'un sait de quoi ça Connection BDD chez Free [ par Ma2004 ] Bonjour à tous (et bon dimanche) !J'ai une petite question à vous soumettre concernant une base de données hébergée chez Free.J'ai un questionnaire qu Transfert de bases de données Mysql en PHP [ par cz1702 ] Bonjour à tous,Je cherche à transférer une base de données Mysql_A (se trouvant sur le serveur A) vers une autre base de données Mysql_B (sur le serve ajouter une pièce jointe à une base de données mysql [ par souzicom ] Salut,comment faire pour  joindre une pièce à une base de données mysql pour le code html ya pas de probl_me mais pour l'insertion de la pièce dans le


Nos sponsors


Sondage...

Comparez les prix

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 : 4,664 sec (3)

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