2014-08-30 2 views
3

Fondamentalement, j'ai un formulaire avec des cases à cocher de toutes les lignes dans ma base de données. L'utilisateur est censé sélectionner celui qu'il veut visible et soumettre ce formulaire. Donc, dans la base de données, je veux mettre toutes les lignes colonne "visible" à false, mais celui qui est sélectionné à true. Je pensais que cela devrait fonctionner:mise à jour php mis tout à 0, mais pour certain id à 1

$sql = "UPDATE `questions` 
    SET `visible` = false; 
    SET `visible` = true WHERE ID={$radio}" ; 

mais je ne peux apparemment pas exécuter plusieurs SETs comme celui-ci. En outre, il n'y a pas une déclaration if-else-like en PHP, non?

Quelle serait une bonne façon de faire face à cela?

Répondre

3

Vous pouvez utiliser conditional statements:

UPDATE `questions` 
SET `visible` = 
CASE 
    WHEN ID = '$radio' THEN true 
    ELSE false 
END 

Aussi, assurez-vous de désinfecter l'entrée d'utilisateur avant de le coller dans une requête.

+0

merci beaucoup! Je savais qu'il devait y avoir une solution simple! – suMi

+0

@suMi vous êtes les bienvenus :) –

1

je le ferais de cette façon:

UPDATE `questions` 
SET `visible` = (ID = {$radio}) 

Lorsque ID = $radio égal à true, puis visible est réglé sur true et visible est réglé sur false dans tous les autres cas.

Questions connexes