Requète UPDATE SQL boléen

Résolu/Fermé
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 - 15 déc. 2017 à 00:20
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 - 15 déc. 2017 à 22:13
Bonjour,
Je souhaiterai modifier un boléen suite à une condition, je m'explique
Si une date existe et est different de null et est plus grand que la date du jour alors j'exécute ma requète UPDATE pour passer mon boléen à TRUE.
Par défault si une date existe $publier est à false. Le champ "inscrip" est de type DATE.
J'ai essayé de faire quelque chose mais je ne suis pas certains je ne voudrais pas semer le bazar dans ma BDD alors avant d'exécuter cette requète, je sollicite votre aide, merci.
$today = date("d/m/Y"); // Date du jour
$idmanif = !empty($_REQUEST['idmanif']) ? $_REQUEST['idmanif'] : NULL;
$publier = isset($_POST['publier']) ? $_POST['publier'] : '';//Case à cocher
$inscrip = isset($_POST['inscrip']) ? dw2m($_POST['inscrip']) : '';//Date d'inscription
if (isset($inscrip) AND ($inscrip != NULL) AND ($inscrip > $today)) {
$sql = "UPDATE cdc_manifestations SET publier = TRUE WHERE idmanif = '$idmanif'";
$requete = $bdd->prepare($sql);
$requete->execute();
}
A voir également:

5 réponses

jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
15 déc. 2017 à 08:04
Bonjour
C'est quoi qui te pose problème... Ke code php ou juste la requête ?
0
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 32
15 déc. 2017 à 08:42
Bonjour,
En fait je ne suis pas certain de la requète pour modifier le boléen afin de le passer à TRUE.
Merci
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
15 déc. 2017 à 09:44
Donc la requête c'est UNIQUEMENT cette ligne de code
UPDATE cdc_manifestations SET publier = TRUE WHERE idmanif = '$idmanif'

Le code PHP ne sert à rien dans ce cas...... (surtout que tu es dans le forum SQL .... seul le SQL nous interesse....)

De quel "type" est ton champ "publier" ? Un Bit ? Un tinyint ? un varchar ? autre ??
De préférence, un simple Tinyint suffit.
Et dans ce cas les valeurs seront 1 ou 0 (1 pour TRUE, 0 pour False )
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
15 déc. 2017 à 09:49
Au passage, concernant ton code php puisque tu l'as posté ....

Où sont les blocs TRY/CATCH sensés entourés ta requête ?
Je t'invite à appliquer ceci : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
0
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 32
15 déc. 2017 à 13:12
mon champ publier est de type "tinyint" Par contre mon bloc TRY/CATCH est dans mon fichier init.php.Pourquoi tu dis que mon code PHP ne sert à rien?
Moi je voulais simplement qu'on me donne un avis sur ma requète, mais quand je mets le maximum d'infos on me dit ça sert à rien et quand je ne met pas tout on me dit de mettre tout son code, vous êtes un peu compliqué vous trouvé pas??
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
15 déc. 2017 à 13:59
Reprenons dans l'ordre :
mon bloc TRY/CATCH est dans mon fichier init.php

Donc tu n'as pas lu le lien que je t'ai donné......
Il ne suffit pas d'en mettre un autour de la connexion.... il faut AUSSI en mettre AUTOUR de CHAQUE REQUETE.

Ensuite:
Pourquoi tu dis que mon code PHP ne sert à rien?

Par ce que ta question concerne UNIQUEMENT ta REQUETE SQL ... et que tu es dans le forum SQL.

mon champ publier est de type "tinyint"

Donc ... NUMERIQUE.
Tu n'y mets pas du TRUE/FALSE mais des nombres. En l'occurence ici, 1 ou 0.

De plus, lorsque tu as un doute sur une requête , tu commences par en faire un ECHO histoire de voir ce que ton code php retourne REELEMENT comme requête, puis tu la testes DIRECTEMENT dans ta BDD.

Encore un peu de lecture pour toi.
Cette fois j'espère que tu liras tout ....
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

.
0
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 32
15 déc. 2017 à 15:29
A propos de mon champ publier qui est de type "tinyint" lorsque je teste ma requète dans Phpmyadmin elle me retourne bien le résultat avec TRUE c'est à dire 1, alors que tu dit comme c'est un champs numérique il faut mettre 1, je n'ai pas bien compris je suppose.
UPDATE cdc_manifestations SET publier = TRUE WHERE idmanif = '521';
0
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
15 déc. 2017 à 16:32
TRUE est compris comme "1"
Mais vu que tu manipule une table en INT (integer == nombre entier...) il est préférable d'utiliser des valeurs numériques.

Quoi qu'il en soit, tu as pu voir que ta requête fonctionne....

Donc la question est résolue non ?
0

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

Posez votre question
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 32
15 déc. 2017 à 22:13
Merci oui c'est bon ca fonctionnne.
0