Mise à jour !

Doums
Invité n'ayant pas de compte PHPfrance

21 déc. 2005, 14:02

Bonjour le forum.

J'ai dans ma base de données une table membres se decomposant comme suit :

id numero nom points
1 258 DUPOND 200
2 258 DURAND 150
3 258 DUCHMOL 0
4 300 PARIS 10
5 300 JONAZ 30

J'affiche un tableau dynamique comportant la liste de ma table membres filtré par le numero. Mon tableau est composé d'une case à cocher portant comme valeur id, le nom avec comme valeur nom et points portant la valeur points.

Je souhaite donc cocher certaines cases et en fonction modifier les cases coché et supprimer de la base les cases non coché !

Est ce possible ? :roll:

Merci pour votre aide...[/quote]

Mammouth du PHP | 19672 Messages

21 déc. 2005, 14:04

Pour faire court : Oui, c'est possible.

La question : Où est-ce que tu bloques ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Doums
Invité n'ayant pas de compte PHPfrance

21 déc. 2005, 14:08

Et bein en faite j'arrive à afficher mon tableau mais je ne sait pas comment faire pour lui dire de supprimer les cases non cochées et modifier les cases cochées !!!!

Je n'ai meme pas un bout de script car je sais pas par ou commencer !

Merci pour vos réponses

Mammouth du PHP | 19672 Messages

21 déc. 2005, 14:12

Lorsque tu récupères les données de ton formulaire, les cases non cochées ne renvoient rien du tout: tu peux donc exploiter ce détail en modifiant les cases pour lesquelles tu as une valeur.

Tu pourrais à la rigueur ajouter pour chaque case un champ caché dans ton formulaire qui enverrai les identifiant de toutes les cases.

De cette manière, tu listes toutes les cases en récupérant les champs cachés et tu supprimes celles pour lesquelles tu n'as pas de valeur retournée par la case à cocher, et tu procèdes au modifications des autres.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

21 déc. 2005, 14:13

Il faut que tu commences par afficher tout tes enregistrements et placer une case à cocher en face de chaque enregistrements
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Doums
Invité n'ayant pas de compte PHPfrance

21 déc. 2005, 14:22

Oui Zeus ca je l'ai deja fait ! Mon probleme c'est la validation du formulaire...

Cyrano je note ta façon de procéder mais mon probleme c'est la rédaction du script qui me pose probleme...

Moi je pensé faire un truc de ce genre avec form en methode GET :
 <?php require_once('../Connections/SAGIP.php'); ?>
<?php
mysql_select_db($database_SAGIP, $SAGIP);
$query_Recordset1 = "SELECT * FROM garanties";
$Recordset1 = mysql_query($query_Recordset1, $SAGIP) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
 <?  echo "<meta http-equiv=\"refresh\" content=\"0; url=garanties.php?numero_contrat=$num_contrat\">";

	$sqlsuppr = "delete from garanties where id = ".$id;
	
	if ( $suppr = mysql_query($sqlsuppr))

    {
    	print "MISE A JOUR DES GARANTIES.<br>";
    }
    else
    {
    	print "LES GARANTIES N'ONT PAS ETE MISES A JOUR POUR LA RAISON SUIVANTE :" .mysql_error();
    }
	
?>
Mais en faite il me modifie le 1er id trouvé dans l'url de plus il me modifie les checbox cochée mais celle qui été coché et que je decche il ne me les supprime pas !!

C'est la ou je suis bloqué ....

Mammouth du PHP | 19672 Messages

21 déc. 2005, 14:28

C'est pour ça que je te suggère de lister tes id : utilise du reste plutôt la méthode post, ce sera moins risqué pour le reste de ta base.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Doums
Invité n'ayant pas de compte PHPfrance

21 déc. 2005, 15:02

j'AI FAIT UN TRUC DE CE GENRE MAIS IL VEUT pas me supprimer les enregistrements pourquoi ?
<?php 

$sqlsuppr = "delete from garanties where num_contrat = ".$numero_contrat;
	
if ( $suppr = mysql_query($sqlsuppr))
{
    	print "MISE A JOUR DES GARANTIES.<br>";
    }
   
	
//Reception des données nécéssaires 
$id_garantie = $_GET["id_garanties"]; //une liste de cases à cocher 
$franchises = $_GET["franchises"]; //une liste d'input's idexés par id_garantie 
$numero_contrat = $_GET["numero_contrat"]; //un input 
//Parcourir la liste des garanties cochées 
if ($id_garanties && count($id_garanties) >0) { 
   foreach ($id_garanties as $id_garantie) 
      if ($id_garantie){ 
             //trouver la franchise de cette garantie 
             $une_franchise = $franchises[$id_garantie]; 
			 echo "<meta http-equiv=\"refresh\" content=\"0; url=garanties.php?numero_contrat=$numero_contrat\">";
             //On a tout : l'id, le numero_contrat, l'id franchise et le montant franchise 
            //On peut lancer un INSERT dans la table garanties 
           $SQL = "INSERT INTO garanties (num_contrat,garanties,franchise) VALUES ('$numero_contrat', '$id_garantie', '$une_franchise')"; 
            
           //Exécuter cette requête 
           mysql_query ($SQL); 
		   
      } //Au suivant 
	  

} else echo ""; //cas de non garanties 

?> 
Merci pour votre aide

Mammouth du PHP | 19672 Messages

21 déc. 2005, 15:11

Où récupères-tu les valeurs du formulaire au juste ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Doums
Invité n'ayant pas de compte PHPfrance

21 déc. 2005, 15:17

Bein je les récuperes pas :?

Mais comment faire pour les récupérer ??

LOL pardon si ma question est bête mais je débute :oops:

Merci

Mammouth du PHP | 19672 Messages

21 déc. 2005, 15:19

Si tu utilises la méthode get, fais ceci:
$var = isset($_GET['var']) ? $_GET['var'] : "";
Où "var" correspond à la valeur de l'attribut "name" du champ de ton formulaire.

Si tu utilises la méthode post, refais exatement la même chose en remplaçant $_GET par $_POST.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Doums
Invité n'ayant pas de compte PHPfrance

21 déc. 2005, 15:21

Pour tout comprendre à quoi sert les deux points et les "" à la fin ?

Eléphant du PHP | 76 Messages

21 déc. 2005, 15:24

C'est l'opérateur ternaire ?:

en fait en gros

(condition) ? (réaction si vrai) : (réaction sinon)

exemple :

($moi=="gros") ? echo "Régime" : echo "OK";

Affichera régime dans mon cas :)
La vie est une maladie mortelle sexuellement transmissible!

Mammouth du PHP | 19672 Messages

21 déc. 2005, 15:25

Ok, j'aurais du t'expliquer ça aussi. Ce que j'ai utilisé, ça s'appelle un "opérateur ternaire" :
$var = isset($_GET['var']) ? $_GET['var'] : "";
Est strictement équivalent à:
if(isset($_GET['var']))
{
    $var = $_GET['var'];
}
else
{
    $var = "";
}
Le "?" équivaut au "if" et vérifie si l'expression qui précède retourne TRUE;
le ":" correspondrait donc au "else" et affectera la seconde valeur si l'expression retourne FALSE
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 76 Messages

21 déc. 2005, 15:28

héhé... pour une fois j'y suis allé plus vite :) mais ptet moins clair :)
La vie est une maladie mortelle sexuellement transmissible!