PHP pb d'Update de base de donnée

Résolu/Fermé
Bilou - 30 déc. 2010 à 18:40
 Bilou - 30 déc. 2010 à 21:09
Bonjour,

je debute en php et j'ai un léger problème avec une requete de modification de base de donnée.

Voila, en se connectant à mon site, une session est ouverte pour chaque utilisateur (pas de profils, de membres, ça reste anonyme) et l'état "normal" est attribué à chaque utilisateur.
Voici le morceau de code en question:

<?php
// Démarrage de la session
session_start();
$_SESSION['id']=session_id()

?>

plus loin je stocke cet ID de session dans la colone ID de ma base de donnée. Jusque là tout se passe bien.

Puis lorsque l'utilisateur clique sur un bouton, je souhaite modifier son statut de "Normal" à "Waiting". Donc, sur une autre page de code j'ai cette requête:
<?php
//après avoir cliqué sur start l'utilisateur passe en mode waiting
$bdd->exec('UPDATE utilisateurs SET etat=\'WAITING\' WHERE ID=\'$_SESSION[id]\'');
?>

Mais ça ne fonctionne pas. Le problème doit certainement venir au moment du "WHERE ID=\'$_SESSION[id]\' "

Quelqu'un aurait-il une solution? Merci pour votre aide!



A voir également:

3 réponses

ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 338
30 déc. 2010 à 19:36
Oublie tout de suite sa deuxième solution : mettre un session_start(); est bien plus propre. Voilà la ligne corrigée :
$bdd->exec("UPDATE utilisateurs SET etat='WAITING' WHERE ID='{$_SESSION['id']}';"); 
1
JavaMafia.com
30 déc. 2010 à 19:00
Bonjour,
Je crois qu'il faut faire > session_start(); au début de l'autre page ou bien de mettre un input <input type=hidden value="<?php echo session_id() ?>" name=session>

et si l'action est POST vous pouvez récuperer l'id de session en utilisant : $_POST['session'];
en GET : $_GET['session'];

Bonne Chance :)
0
Un grand merci à vous deux!

J'ai donc utilisé un session_start() en haut de ma page (je pensais qu'en en mettant un dans la première page de code, je n'avais pas besoin d'en mettre un sur la seconde page) et j'ai utilisé la ligne corrigée de ghuysmans99.
0