2012-09-01 3 views
2

Bonjour les gars je travaille sur un projet pour gérer des taches sur un événement. J'essaie de mettre à jour les valeurs des spots d'événement après que quelqu'un s'y soit inscrit. Il n'y a aucun problème avec quelqu'un qui enregistre ou lit les valeurs de la base de données mais je ne peux pas mettre à jour les taches. Espérons que vous pouvez aider ..PDO Value Increment PHP, Mysql

Voici le ne fonctionne pas partie du code:

$free_spots_new = $free_spots - 1 ; // i haven't written the code up there, $free_spots is the value of the free_spots value in the database. And this is the process after someone registers to this event ... 
$full_spots_new = $full_spots + 1 ; // same in here 

try{ 
$update_event_query = "UPDATE `events` SET `free_spots` = :free_spots, `full_spots`= :full_spots WHERE `event_id`=:event_id"; 
$update_event_query_do = $db->prepare($update_event_query); 
$update_event_query_do -> bindParam(':free_spots', $free_spots_new, PDO::PARAM_INT); 
$update_event_query_do -> bindParam(':full_spots', $full_spots_new, PDO::PARAM_INT); 
$update_event_query_do ->execute() or die(print_r($update_event_query_do->errorInfo(), true)); 
} 

catch(PDOException $e) { 
$log->logError($e." - ".basename(__FILE__)); 
} 

Aussi est-il possible de mettre à jour les valeurs dans la ligne UPDATE sans définir une nouvelle variable comme free_spots_new $ HT.

+0

pouvez-vous voir le '' '' manquant? –

+0

ah oui désolé oublié de le faire, mais dans l'original, il n'y a pas de problème à ce sujet, oublié lors de l'affichage, merci –

Répondre

3

A côté du manque '

Vous pouvez exécuter les modifications directement dans la requête:

UPDATE `events` 
SET `free_spots` = `free_spots`-1, 
     `full_spots` = `full_spots`+1 
WHERE `event_id` = :event_id 

Votre besoin aussi de lier le: espace réservé event_id $update_event_query_do->bindParam(':event_id', $event_id, PDO::PARAM_INT);

+0

merci, cela fait l'affaire –

+0

np codage heureux ... ne pas oublier d'accepter; p –

+0

bien sûr je fais :)) –

0

sans guillemets $ update_event_query_do -> bindParam (': points_spécifiques, $ points_complet_s, PDO :: PARAM_INT);

Essayez:

$update_event_query_do -> bindParam(':full_spots', $full_spots_new, PDO::PARAM_INT); 
0

Vous n'êtes pas lié :event_id dans vos paramètres ...

+0

oui, merci pour ça –