Udapte PHP

Résolu/Fermé
MastercroW Messages postés 1095 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 - Modifié par MastercroW le 21/11/2010 à 18:34
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 24 nov. 2010 à 13:20
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

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:

6 réponses

coccoweb Messages postés 141 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 17 février 2015 27
22 nov. 2010 à 02:00
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.
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
22 nov. 2010 à 03:14
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?
0
MastercroW Messages postés 1095 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
22 nov. 2010 à 16:48
C'est à dire ? Peux tu me donné un exemple ?
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
22 nov. 2010 à 21:03
Je suppose que t'es variables de session que tu souhaites utiliser et mettre à jours sont défini au moment de la connexion.
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.
0
MastercroW Messages postés 1095 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
Modifié par MastercroW le 23/11/2010 à 19:10
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 :
<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
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
23 nov. 2010 à 21:43
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:
<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.
0
MastercroW Messages postés 1095 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
24 nov. 2010 à 08:10
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MastercroW Messages postés 1095 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
Modifié par MastercroW le 24/11/2010 à 10:51
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 
 } 
?> 
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
24 nov. 2010 à 12:14
En toute logique:
 $_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.
0
MastercroW Messages postés 1095 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
24 nov. 2010 à 13:12
Sa marche ! Merci
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
24 nov. 2010 à 13:20
Oublie pas de changer le statut en "Résolu" en haut.
0