Page 1 sur 2

Mise à jour !

Posté : 21 déc. 2005, 14:02
par Doums
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]

Posté : 21 déc. 2005, 14:04
par Cyrano
Pour faire court : Oui, c'est possible.

La question : Où est-ce que tu bloques ?

Posté : 21 déc. 2005, 14:08
par Doums
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

Posté : 21 déc. 2005, 14:12
par Cyrano
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.

Posté : 21 déc. 2005, 14:13
par zeus
Il faut que tu commences par afficher tout tes enregistrements et placer une case à cocher en face de chaque enregistrements

Posté : 21 déc. 2005, 14:22
par Doums
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é ....

Posté : 21 déc. 2005, 14:28
par Cyrano
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.

Posté : 21 déc. 2005, 15:02
par Doums
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

Posté : 21 déc. 2005, 15:11
par Cyrano
Où récupères-tu les valeurs du formulaire au juste ?

Posté : 21 déc. 2005, 15:17
par Doums
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

Posté : 21 déc. 2005, 15:19
par Cyrano
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.

Posté : 21 déc. 2005, 15:21
par Doums
Pour tout comprendre à quoi sert les deux points et les "" à la fin ?

Posté : 21 déc. 2005, 15:24
par Min's
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 :)

Posté : 21 déc. 2005, 15:25
par Cyrano
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

Posté : 21 déc. 2005, 15:28
par Min's
héhé... pour une fois j'y suis allé plus vite :) mais ptet moins clair :)