Udapte PHP
Résolu
MastercroW
Messages postés
1094
Date d'inscription
Statut
Membre
Dernière intervention
-
arthezius Messages postés 3538 Date d'inscription Statut Membre Dernière intervention -
arthezius Messages postés 3538 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
Alors voilà, lorsque j'ajoute / modifie quelques chose dans ma base de donnée cela ne modifie pas sur le site(évidement je rafraîchis la page). Pour que les informations qui sont sur mon site change il faut que je me déconnecte et je me reconnecte. Voilà je voudrais savoir pourquoi ?
PS : J'ai bien mis un update et les informations sont dans ma SESSION
Merci d'avance,
Amicalement Antoine.
Alors voilà, lorsque j'ajoute / modifie quelques chose dans ma base de donnée cela ne modifie pas sur le site(évidement je rafraîchis la page). Pour que les informations qui sont sur mon site change il faut que je me déconnecte et je me reconnecte. Voilà je voudrais savoir pourquoi ?
PS : J'ai bien mis un update et les informations sont dans ma SESSION
mysql_query("UPDATE account_db SET Origines='".$newBonus."', Points='".$newpoints."' WHERE Email='".$id."'") or die(mysql_error());
Merci d'avance,
Amicalement Antoine.
A voir également:
- Udapte PHP
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
6 réponses
Si je comprend bien le probleme, tu stock une information dans une variable global SESSION
Cette dit vairiable, n'hésésite un unset()
<?php
// Destruction d'une seule variable
unset($foo);
// Destruction d'un élément de tableau
unset($bar['quux']);
// Destruction de plusieurs variables
unset($foo1, $foo2, $foo3);
?>
et seulement après indiquer la nouvelle valeur.
Cette dit vairiable, n'hésésite un unset()
<?php
// Destruction d'une seule variable
unset($foo);
// Destruction d'un élément de tableau
unset($bar['quux']);
// Destruction de plusieurs variables
unset($foo1, $foo2, $foo3);
?>
et seulement après indiquer la nouvelle valeur.
arthezius
Messages postés
3538
Date d'inscription
Statut
Membre
Dernière intervention
475
S'il souhaite simplement modifier les valeurs qui sont en SESSION qui proviennent elle même de la base de donnée, il suffit simplement qu'il redéfinisse ces variables de SESSION au moment de l'UPDATE non?
C'est à dire ? Peux tu me donné un exemple ?
Je suppose que t'es variables de session que tu souhaites utiliser et mettre à jours sont défini au moment de la connexion.
Exemple:
On suppose que tu fais évoluer plus tard ce champ1 de ta base de donnée.
C'est un exemple. Il faut ensuite réadapter le tout à ton script php.
J'espère avoir bien compris ce que tu veux faire.
Exemple:
//Récupération des données du membre $sql='SELECT * FROM membre WHERE login="'.mysql_real_escape_string($_POST['login']).'"';* $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); //On défini la variable de session $_SESSION['champ1']=$data['champ1'];
On suppose que tu fais évoluer plus tard ce champ1 de ta base de donnée.
//On met à jours le champ1 $sql='UPDATE membre SET champ1="'.mysql_real_escape_string($_POST['champ1']).'"'; mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); //On met à jours la variable de session $_SESSION['champ1']=$_POST['champ1'];
C'est un exemple. Il faut ensuite réadapter le tout à ton script php.
J'espère avoir bien compris ce que tu veux faire.
Salut'
Merci de ta réponse mais tu ne pouvais pas deviner mais ce n'est qu'un bouton ou lorsque l'on clic dessus, sa ajoute deux choses dans ma base de donnée.
Voici mon bouton :
Et lorsque que l'on clic dessus (apparaît ma requête) ajoute dans deux colonnes des points pourrai-je dire.
J'ai testé pour voir si sa donnerait quelques choses, mais un problème surviens. Enfin elle n'affiche plus rien une fois que j'ai cliquer ... Aucune erreur de syntaxe.
('.$_SESSION['Origines'].')
Voici tout d'abord la requête :
Avidement j'ai changé le nom de mon bouton (j'ai rajouté name="bouton")
Sinon tu as tout à fais raison pour les variables de session sont définis au moment de la connexion.
Voilà alors j'espère que tu m'aidera une fois de plus.
Merci d'avance
Cordialement,
Antoine B
Merci de ta réponse mais tu ne pouvais pas deviner mais ce n'est qu'un bouton ou lorsque l'on clic dessus, sa ajoute deux choses dans ma base de donnée.
Voici mon bouton :
<input type="button" value="Ajouté les points" onclick="window.location = 'recordPurchase01.php';" />
Et lorsque que l'on clic dessus (apparaît ma requête) ajoute dans deux colonnes des points pourrai-je dire.
J'ai testé pour voir si sa donnerait quelques choses, mais un problème surviens. Enfin elle n'affiche plus rien une fois que j'ai cliquer ... Aucune erreur de syntaxe.
('.$_SESSION['Origines'].')
Voici tout d'abord la requête :
mysql_query("UPDATE account_db SET Origines='".$newBonus."', Points='".$newpoints."' WHERE Email='".$id."'") or die(mysql_error()); //On met à jours la variable de session $_SESSION['Origines']=$_POST['bouton']; $_SESSION['Points']=$_POST['bouton'];
Avidement j'ai changé le nom de mon bouton (j'ai rajouté name="bouton")
Sinon tu as tout à fais raison pour les variables de session sont définis au moment de la connexion.
Voilà alors j'espère que tu m'aidera une fois de plus.
Merci d'avance
Cordialement,
Antoine B
Bien que n'étant pas expert en javascript, je ne pense pas que le onclick sur ton bouton en la valeur de celui dans la balise $_POST correspondante.
En principe, pour ça on utilise la balise <form>
Autrement dit, dans ton cas:
Je pense que le onclick que tu as mis ne fait qu'une redirection vers la page.
Ensuite:
A noter les corrections faites sur le bouton.
La variable $_POST corresponds au name="" du bouton.
J'ai ensuite ajouter une vérification pour vérifier si le formulaire (autrement le bouton) est bien envoyé.
Voilà qui devrai être mieux.
En principe, pour ça on utilise la balise <form>
Autrement dit, dans ton cas:
<form method="post" action="recordPurchase01.php"> <input type="submit" name="bouton" value="Ajouter les points" /> </form>
Je pense que le onclick que tu as mis ne fait qu'une redirection vers la page.
Ensuite:
<?php session_start(); if(isset($_POST['bouton'])) { mysql_query("UPDATE account_db SET Origines='".$newBonus."', Points='".$newpoints."' WHERE Email='".$id."'") or die(mysql_error()); //On met à jours la variable de session $_SESSION['Origines']=$_POST['bouton']; $_SESSION['Points']=$_POST['bouton']; } else{ echo'Le formulaire n\'a pas été envoyé.'; } ?>
A noter les corrections faites sur le bouton.
La variable $_POST corresponds au name="" du bouton.
J'ai ensuite ajouter une vérification pour vérifier si le formulaire (autrement le bouton) est bien envoyé.
Voilà qui devrai être mieux.
Bonjour, j'avais déjà essayé, en enlevant le onclick. Et en mettant le POST.
Le problème est lorsque je clic sur le bouton le traitement se fait tout correctement et là, ma variable qui affiche les points prend la valeur du bouton c'est à dire "Ajouter les points".
Je capte pas vraiment ce qu'il se passe, de plus j'ai bien pris ce que tu avais mis.
Bref le problème est toujours là!
En espérant que cela se règle vite =D
Merci d'avance,
Enjoy
Le problème est lorsque je clic sur le bouton le traitement se fait tout correctement et là, ma variable qui affiche les points prend la valeur du bouton c'est à dire "Ajouter les points".
Je capte pas vraiment ce qu'il se passe, de plus j'ai bien pris ce que tu avais mis.
Bref le problème est toujours là!
En espérant que cela se règle vite =D
Merci d'avance,
Enjoy
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Si cela peut vous aidez, je met ma requête en entière :
<?php session_start(); // Ouverture de la BDD $host = "localhost"; $user = "root"; $password = ""; mysql_connect($host,$user,$password); mysql_select_db("mabdd"); if(isset($_POST['bouton'])) { $id = $_SESSION['Email']; // Email $bonus = mysql_fetch_array(mysql_query("SELECT Origines FROM account_db WHERE Email='".$id."'")); $bonus = intval($bonus[0]); // $points = mysql_fetch_array(mysql_query("SELECT Points FROM account_db WHERE Email='".$id."'")); $points = intval($points[0]); // Le nombre des points qui vont aller dans la base de données $newBonus = $bonus + 700; $newpoints = $points + 60; mysql_query("UPDATE account_db SET Origines='".$newBonus."', Points='".$newpoints."' WHERE Email='".$id."'") or die(mysql_error()); //On met à jours la variable de session $_SESSION['Origines']=$_POST['bouton']; $_SESSION['Points']=$_POST['bouton']; header("Location: acceptedPurchase01.php"); // Redirection en cas de succès de l'opération } else{ echo'Le formulaire n\'a pas été envoyé.'; // Redirection en cas d'échec de l'opération } ?>
En toute logique:
est à modifier en:
$newpoints et $newBonus sont les nouvelles valeurs de point. C'est donc ces deux variables qu'il faut utiliser pour mettre à jours les variables de SESSION.
$_SESSION['Origines']=$_POST['bouton']; $_SESSION['Points']=$_POST['bouton'];
est à modifier en:
$_SESSION['Origines']=$newBonus; $_SESSION['Points']=$newpoints;
$newpoints et $newBonus sont les nouvelles valeurs de point. C'est donc ces deux variables qu'il faut utiliser pour mettre à jours les variables de SESSION.