Effacer champs table
Résolu
t671
Messages postés
1476
Date d'inscription
Statut
Membre
Dernière intervention
-
t671 Messages postés 1476 Date d'inscription Statut Membre Dernière intervention -
t671 Messages postés 1476 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je veux effacer un champs d'une table mysql.
J'affiche un enregistrement avec ses champs.
Les champs, s'ils existent, s'affichent dans une "boîte", où l'on peut les modifier :
Si le champs est vide, j'affiche différentes cases de choix pour définir le champs (choix par ascenseur) :
Si le champs existe, et que je veux l'effacer, je le sélectionne dans la boîte et "Suppr". Donc le champs est vide.
Par contre, au réaffichage de l'enregistrement, j'ai l'affichage d'une boîte vide, et non mes "différentes cases de choix".
Dans le script de maj de la base, je fais :
En fait, après suppression (vidage) d'un champs, celui-ci ne reste pas vraiment vide ! Il faudrait comme "initialiser" le champs pour le rendre vierge et qu'il soit reconnu "empty" !
Mais comment faire ?
Merci.
Je veux effacer un champs d'une table mysql.
J'affiche un enregistrement avec ses champs.
Les champs, s'ils existent, s'affichent dans une "boîte", où l'on peut les modifier :
echo '<input name="date_naissance" type="text" id="date_naissance" value="'.$row['date_naissance'].'" size="40" maxlength="40"><br>';
Si le champs est vide, j'affiche différentes cases de choix pour définir le champs (choix par ascenseur) :
echo '<SELECT name="jour1"> <OPTION VALUE=""></OPTION> <OPTION VALUE="1">1</OPTION> <OPTION VALUE="2">2</OPTION> <OPTION VALUE="3">3</OPTION> ...............
Si le champs existe, et que je veux l'effacer, je le sélectionne dans la boîte et "Suppr". Donc le champs est vide.
Par contre, au réaffichage de l'enregistrement, j'ai l'affichage d'une boîte vide, et non mes "différentes cases de choix".
Dans le script de maj de la base, je fais :
if (empty($date_naissance)) //***si date_naissance est vide { $date_naissance = ("$nais_expression1 $nais_jour1 $nais_mois1 $nais_an1 $nais_expression2 $nais_jour2 $nais_mois2 $nais_an2"); //***date_naissance est formé par les différentes cases de choix, qui peuvent-être restées vides. $result=mysql_query("UPDATE individus SET date_naissance='$date_naissance', ............... }
En fait, après suppression (vidage) d'un champs, celui-ci ne reste pas vraiment vide ! Il faudrait comme "initialiser" le champs pour le rendre vierge et qu'il soit reconnu "empty" !
Mais comment faire ?
Merci.
A voir également:
- Effacer champs table
- Table ascii - Guide
- Table des matières word - Guide
- Effacer les données de navigation sur android - Guide
- Effacer iphone - Guide
- Comment effacer une page word - Guide
4 réponses
Bonsoir,
La valeur pour un champ vide en SQL n'est pas empty(c'est du php et non de la base de données) mais NULL(nul en anglais).
dariumius:
lors de la suppression tu place dans le champ 6654 et tu teste cette valeur.
Solution qui peut paraître valable mais oblige à alourdir le traitement(la présence au mieux d'une constante) alors qu'avec une valeur nulle il y a ce test mais pas besoin de 6654 qui ne veut rien dire et doit être retenu par PHP obligeant à du code inutile.
Le champ de la date de naissance doit autoriser ne valeur nulle.
La valeur pour un champ vide en SQL n'est pas empty(c'est du php et non de la base de données) mais NULL(nul en anglais).
dariumius:
lors de la suppression tu place dans le champ 6654 et tu teste cette valeur.
Solution qui peut paraître valable mais oblige à alourdir le traitement(la présence au mieux d'une constante) alors qu'avec une valeur nulle il y a ce test mais pas besoin de 6654 qui ne veut rien dire et doit être retenu par PHP obligeant à du code inutile.
Le champ de la date de naissance doit autoriser ne valeur nulle.
OK !!! Encore une fois, merci à vous tous ! ;o)
J'ai déclarer dans ma bd que le champs date_naissance (en varchar) pouvait être NULL. Je le teste, et s'il est vide ou qu'il n'existe pas, je lui affecte la valeur NULL.
Et avec cela ça fonctionne !
Par contre, je n'ai pas compris votre proposition d'affecter la valeur 6654 !!!???
Je pensais que cette valeur forçait le "clear" du champs, mais celle-ci reste une valeur réel !
Bref, encore merci à vous !!!!
A +
J'ai déclarer dans ma bd que le champs date_naissance (en varchar) pouvait être NULL. Je le teste, et s'il est vide ou qu'il n'existe pas, je lui affecte la valeur NULL.
Et avec cela ça fonctionne !
Par contre, je n'ai pas compris votre proposition d'affecter la valeur 6654 !!!???
Je pensais que cette valeur forçait le "clear" du champs, mais celle-ci reste une valeur réel !
Bref, encore merci à vous !!!!
A +
Salut, ça vient effectivement du fait que le champs n'est pas vide, tu peux peut être mettre une valeur par défaut lors de la suppression pour pouvoir la tester par la suite. Je ne sait pas de quel type est le champs qui stock la date de naissance mais par exemple, lors de la suppression tu place dans le champ 6654 et tu teste cette valeur:
if ($date_naissance==6654){//......}